[Asterisk-code-review] func_odbc: acf_odbc_read() and cli_odbc_read() unicode support (...asterisk[master])

Boris P. Korzun asteriskteam at digium.com
Tue Sep 3 18:13:07 CDT 2019


Boris P. Korzun has posted comments on this change. ( https://gerrit.asterisk.org/c/asterisk/+/12812 )

Change subject: func_odbc:  acf_odbc_read() and cli_odbc_read() unicode support
......................................................................


Patch Set 4:

> Patch Set 4:
> 
> > Patch Set 4:
> > 
> > > Patch Set 4:
> > > 
> > > I don't think the predefined multiplier is a good idea.
> > > The ODBC Driver Manager should resolve this issue.
> > > There are 2 encodings: server (driver) and client (application).
> > > If the server encoding is UTF16 and client is UTF8 then Driver Manager should convert UTF16 to UTF8 and vice versa. Look at SQL_ATTR_APP_UNICODE_TYPE and SQL_ATTR_DRIVER_UNICODE_TYPE
> > 
> > Okay, it's theoretically possible to get server and client encodings. But how you offer to convert a buffer length for UTF16 (commonly used server encoding for Windows) to a buffer length for UTF8 (commonly used Asterisk, CLI, SIP-Phones encoding)? AFAIK, there're no algos for it in theory.
> 
> I just did a test with MySQL.
> 
> CREATE TABLE test_utf8 (
>     test_fld varchar(200)
> ) DEFAULT CHARACTER SET utf8
>   DEFAULT COLLATE utf8_general_ci;
> 
> CREATE TABLE test_utf16 (
>     test_fld varchar(200)
> ) DEFAULT CHARACTER SET utf16
>   DEFAULT COLLATE utf16_general_ci;
> 
> The SQLDescribeCol returns collen=200 for both tables.
> SQLColAttribute with SQL_DESC_OCTET_LENGTH returns
> test_utf8  - 600
> test_utf16 - 800

It's OK for MySQL (that can store the data in various encodings). But MS SQL (prior 2019) can store Unicode data (NCHAR/NVARCHAR/NTEXT types) in UTF-16 only.


-- 
To view, visit https://gerrit.asterisk.org/c/asterisk/+/12812
To unsubscribe, or for help writing mail filters, visit https://gerrit.asterisk.org/settings

Gerrit-Project: asterisk
Gerrit-Branch: master
Gerrit-Change-Id: I50e86c8a277996f13d4a4b9b318ece0d60b279bf
Gerrit-Change-Number: 12812
Gerrit-PatchSet: 4
Gerrit-Owner: Boris P. Korzun <drtr0jan at yandex.ru>
Gerrit-Reviewer: Alexei Gradinari <alex2grad at gmail.com>
Gerrit-Reviewer: Boris P. Korzun <drtr0jan at yandex.ru>
Gerrit-Reviewer: Friendly Automation
Gerrit-Reviewer: George Joseph <gjoseph at digium.com>
Gerrit-CC: Sean Bright <sean.bright at gmail.com>
Gerrit-Comment-Date: Tue, 03 Sep 2019 23:13:07 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
Gerrit-MessageType: comment
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20190903/bd994968/attachment-0001.html>


More information about the asterisk-code-review mailing list