使用错误的编码从PHP获取数据

时间:2016-06-09 10:27:23

标签: php character-encoding odbc vertica

我正在尝试使用php odbc_connect从Vertica DB获取数据,我对Russsian文本有疑问,所以例如我没有收到此文Уютная我得到\x1A\x1A\x1A\x1A\x1A\x1A

这是我的DNS连接字符串:

 $dsn = "Driver=Vertica;Server={$host};Port={$port};Database={$database};";
 $this->connection = odbc_connect($dsn, $username, $password);

这是我的/etc/vertica.ini文件(app在debian Jessie中运行):

[Driver]
DriverManagerEncoding=UTF-16
ODBCInstLib = /usr/lib/x86_64-linux-gnu/libodbcinst.so.1
ErrorMessagesPath=/opt/vertica
LogLevel=4
LogPath=/tmp

我正在使用Vertica ODBC驱动程序7.2.2-0

知道如何解决它吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

我找到的临时解决方案是使用URI_PERCENT_ENCODE函数(vertica sql函数)包装该字段,并在php中执行urldecode。

stackoverflow