PHP编码问题与引号(“”)和其他特殊字符

时间:2012-04-05 18:08:59

标签: php mysql encoding utf-8 internationalization

我在德国网站上遇到编码问题。 我有一个文字:

  “EröffnungsfeierFISAlpine Ski WM 2011”

当这个文本保存到数据库中时,我得到了吗?而不是那些引号。

我尝试过放置

header("Content-Type: text/html; charset=utf-8");
mb_internal_encoding("UTF-8");
setlocale(LC_ALL, 'de_DE.utf-8');

在文件的顶部没有成功。

当我使用

mysql_set_charset('utf8', $connect);

但是,当在达到第一个字符之后插入上面的文字时,文本的其余部分会被删除。

表格字符集和校对是UTF-8。 脚本文件保存为UTF-8,无BOM。

我缺乏想法在哪里看。

2 个答案:

答案 0 :(得分:1)

1)检查数据库的模式 - 是否设置了存储utf-8的文本字段?

2)听起来这个脚本发布的页面没有发送UTF-8。它是否有正确的Content-Type标题? echo urlencode($var)显示什么? (这是一个很好的黑客,可以看到你得到的原始字节)

答案 1 :(得分:0)

我所做的事情有所帮助。特别是mysql_set_charset('utf8', $connect);。 问题是另一个程序员(utf8_decode)留下了一些不需要的代码。 看起来他不能用其他方式处理utf-8编码。

我还发现,如果从一开始就与编码保持一致,就不需要mysql_set_charset('utf8', $connect);