字符集困境

时间:2009-01-15 14:49:09

标签: php mysql ajax utf-8 character-set

我有一个用php构建的小型ajax应用程序。

使用phpMyAdmin我已将mysql数据库设置为utf-8,并已将包含utf-8数据的文本文件导入其中。

在my.cnf文件中添加了character-set-server = utf8和default-character-set = utf8之后,在带有easyphp的windows机器上运行正常。

我现在尝试将其移至生产服务器,在那里我无法访问配置文件,并且不显示变音符号等字符。

是否可以在php代码(而不是配置文件)中设置一些东西来解决这个问题,或者我可以给mysql一些命令?

我尝试了ALTER DATABASE vweb_50 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin和phpMyAdmin尝试从utf8_general_ci尝试,但它没有任何区别。

2 个答案:

答案 0 :(得分:1)

这里有几件事需要做,而且我不确定我是否正确理解你的问题,但如果我这样做,我认为大部分都可以通过PHP函数来解决 utf8_encode utf8_decode

  • utf8_encode
    • 将ISO-8859-1字符串编码为UTF-8
  • utf8_decode
    • 此功能将假定为UTF-8编码的数据解码为ISO-8859-1。

另外,如果需要,请查看htmlentities

答案 1 :(得分:0)

如果在整个应用程序中使用utf-8(我建议使用),则不需要utf8_encode / decode功能。你有没有检查过你的页面的编码方式?可能服务器配置为将iso-8859-1作为字符集发送,而您的测试环境发送utf-8。使用Content-Type标头设置编码:

header("Content-Type: text/html; charset=utf-8");