2

我的网站上有这样的角色:Fémnyomó

那是一个街道地址,用另一种语言输入(虽然我不知道是哪种语言)。这是数据库设置:

mysql 4.1.2log
charset cp1252 West European (latin1)

我正在使用 PHP,但没有 mbstrings()(虽然我没有在这个地址上进行字符串转换,只是回显)。

如果我将 mysql 字符集从 cp1252 更改为 UTF-8 并确保我使用了类似这样的东西header( 'Content-Type: text/html; charset=UTF-8' );会改善我的情况吗?或者,数据是否因为保存在 cp1252 字符集中而被冲洗掉了,而我无能为力?原始数据库创建于 2002 年,此后一直在使用/扩展。我们已经升级了服务器并重新导入了转储文件,但遗憾的是我承认没有过多考虑字符集。

如果我很烦,我可能会删除这些字段中的文本,但我想支持 unicode,所以如果我发布ALTER database_name DEFAULT CHARACTER SET utf8;将确保正确保存未来的多字节编码,至少从存储空间中取出等式(让我担心 PHP)?

谢谢 -

4

1 回答 1

1

1) 将所有字符集转换为 UTF8:

ALTER database_name DEFAULT CHARACTER SET utf8;

2)在页面上的任何查询之前发出此问题:

mysql_query("set names 'utf8'");

3)使用这个标题:

header( 'Content-Type: text/html; charset=UTF-8' );

4) 插入此元标记:

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>

5)另外,请阅读:http ://www.oreillynet.com/onlamp/blog/2006/01/turning_mysql_data_in_latin1_t.html

于 2010-08-22T08:38:05.067 回答