需要帮助查询从Vertica的UTF8字符串与PHP ODBC驱动程序(Need help quer

2019-10-18 19:26发布

我一直有一些麻烦搞清楚,以处理PHP UTF8字符的最佳方式。 我能UTF8数据(中国字符)加载到Vertica的蛮好的,使用JDBC客户端时,可以在那里看到他们,所以我知道数据被正确记录。

然而,当我通过PHP查询,包含UTF8字符的字符串来通过为空值。 不过,我可以不喜欢包裹UTF8场在URI_PERCENT_ENCODE功能,然后做一个urldecode在PHP中的数据,从而正确输出的字符。

有没有可以推荐给更多的妥善处理UTF8任何ODBC驱动程序的设置,或PHP设置?

我们正在运行PHP 5.3,64位。

Answer 1:

不管它的价值,与Vertica的64位ODBC适用于Windows的工作,并呼吁SQLDescribeColW来形容与中国名字和中国列名的表时(即描述了像SQL语句“SELECT * FROM MYTABLE”),名称返回的编码“时髦UTF-8”。

的“时髦UTF-8”或FUTF-8编码使用wchar_t的[](在Windows上它是16位值的阵列),其中在阵列中的每个条目,有一个单一的实UTF-8字节。

例如,如果列名是“时髦”,其UTF-16编码是65f6h,9ae6h(两个字符,每个16位)和它的UTF-8编码是E6H,97H,B6H,E9H,ABH,A6H(两个字符,各3个字节),则在FUTF-8你会得到:00e6h,0097h,00b6h,00e9h,00abh,00a6h(6个字符,每个16位)。

我想,这是什么样放入空的PHP。 我把它叫做ODBC驱动程序的bug。



文章来源: Need help querying UTF8 strings from Vertica with PHP ODBC driver