【发布时间】:2015-06-19 23:53:55
【问题描述】:
我有 php 代码将字符串提交到两个不同服务器上的两个 postgresql 数据库。
字符串是:
'£pound €euro'
PHP 服务器版本:
- PHP 5.4.36-0+deb7u3
- Debian Linux 3.2.0-4-amd64
服务器 1 版本:
- Debian Linux 2.6.32-5-amd64
- Postgresql:9.1.11
服务器 2 版本:
- Debian Linux 2.6.32-5-amd64
- Postgresql:9.1.7
两者的服务器编码都是 UTF8
client_encoding 也是 UTF8
两台服务器的区域设置也相同。
以下代码用于执行查询:
$oConn=@pg_Connect('host=$myip dbname=$mydb user=$myuser password=$mypassword');
$sql = "select * from _myfunction($mystring)";
$result=@pg_query($oConn, $sql);
我发现发生的是,当查询被执行时,服务器 1 正在接收以下内容:
select * from _myfunction('£pound €euro')
但在服务器 2 上正在接收以下内容:
select * from _myfunction('£pound �euro')
有没有人知道我在哪里可以找出导致两台服务器之间接收到的查询不同的原因。看到服务器 2 的查询变得时髦,数据库其他部分中的无效字节序列错误导致了问题。
我被难住了。我能看到的唯一区别是 postgresql 的次要版本。
【问题讨论】:
标签: php linux postgresql encoding