我有php代码,它将字符串提交到两个不同服务器上的两个postgresql数据库。
字符串是:
'£pound €euro'
PHP服务器版:
服务器1版本:
服务器2版本:
两者的服务器编码都是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的次要版本。
答案 0 :(得分:0)
我猜你的postgree charset在两台服务器上都不一样。请参阅How can i change database encoding for a PostgreSQL database using sql or phpPgAdmin?,它可能会对您有所帮助