PHP - 再次编码罢工

时间:2011-03-24 20:15:39

标签: php html ajax postgresql utf-8

我的网页遇到了编码问题,这让我发疯了。让我试着解释

  • 我有一个meta标签,将utf8定义为charset。
  • 我也将脚本包含为utf8(<script type="text/javascript src="..." charset="utf8"></script>)。
  • 在.php文件中,我声明header('Content-Type: text/html; charset=utf8');
  • 在我的数据库(postgreSQL)中,我创建了查询show lc_collate;,返回时间为en_US.UTF-8
  • 我正在使用AJAX
  • 当我尝试将字段值“name”保存为“áéíóú”时,我在记录集中得到值“áéÃóú”(使用phpPgAdmin查看结果)。

我做错了什么?有没有办法解决它而不使用解码/编码?有人对这些问题有很好的参考吗?

谢谢大家!

3 个答案:

答案 0 :(得分:1)

可能客户端编码设置不正确? PostgreSQL自动在客户端上的字符编码和数据库中的编码之间进行转换。为此,它需要知道客户端使用的编码。最安全的是在使用以下方式打开连接时设置:

将CLIENT_ENCODING设置为'UTF8';

详细信息see the docs

答案 1 :(得分:0)

您可能将数据存储为ISO-8859-1?

答案 2 :(得分:0)

尝试编码为base64并在另一端进行解码。