[Asterisk-code-review] func_odbc: acf_odbc_read() and cli_odbc_read() unicode support (...asterisk[master])
Alexei Gradinari
asteriskteam at digium.com
Wed Sep 4 08:42:36 CDT 2019
Alexei Gradinari 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:
> > >
> > > > 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.
My point is that the ODBC driver should correctly return SQL_DESC_OCTET_LENGTH.
If it's not that the issue either with driver configuration or driver implementation.
--
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: Wed, 04 Sep 2019 13:42:36 +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/20190904/485b723b/attachment.html>
More information about the asterisk-code-review
mailing list