如果语言是英语,我有一个注册表格,它正确对应于db表格。 IF语言是希腊语或其他用户名出现在表中作为加密(损坏??)。在数据库表中选择utf8_general_ci。我应该在代码中添加什么内容才能在所有语言中获得相同的结果。 (结果=在db表中可以看到用户的用户名正确)。不同语言的用户
不同语言的用户
回答
确保提供结果的页面与数据库的编码具有相同的编码。如果表中有UTF-8数据,但显示这些数据的页面是例如ISO-8859-1,则ISO-8859-1字符集范围之外的字符会显示为奇怪。
在PHP中一个可以修改标题为这样:
header('Content-type: text/html; charset=utf-8');
谢谢,我会试试看。 – 2013-03-11 10:20:07
第一个查询之前添加
mysql_query("SET NAMES 'utf8' COLLATE 'utf8_general_ci'");
更好地使用mysql_set_charset()而不是mysql_query()。 http://www.php.net/manual/en/mysqlinfo.concepts.charset.php。或者甚至更好,使用PDO:http://stackoverflow.com/questions/584676/how-to-make-pdo-run-set-names-utf8-each-time-i-connect-in-zendframework – 2013-03-12 03:16:14
UTF8是在PHP非常棘手。一些更多的问题(除了UTF8头和UTF8 DB连接其他2个回答)我知道的:
您将需要使用mbstring functions。例如,substr()可能需要由mb_substr()函数替换。有关字符串函数的完整列表。见here。为了让php知道您期望的内部编码,请在脚本开头调用此函数:
mb_internal_encoding(“UTF-8”);
根据你的php版本,你可能需要不同地处理htmlspecialchars(),htmlentities()。
与htmlspecialchars()一样,htmlentities()采用可选的第三个参数编码,它定义了转换中使用的编码。如果省略,则此参数的缺省值是5.4.0之前的PHP版本中的ISO-8859-1,而PHP 5.4.0及之后的版本是UTF-8。
使用mysql LENGTH()函数的旧查询可能不是我们想要的,因为length()返回字节长度,而不是字符长度。我们可能需要更新它们以使用CHAR_LENGTH()。但是,这一切都取决于上下文!在以下示例中,中文列有3个字符,但每个字符占3个字节。
mysql> select *, length(d), char_length(d) from t where id=3; +----+-----------+-----------+----------------+ | id | d | length(d) | char_length(d) | +----+-----------+-----------+----------------+ | 3 | 被冻死 | 9 | 3 | +----+-----------+-----------+----------------+
- 1. 如何切换不同用户的语言环境/语言
- 2. 用不同语言发言
- 3. 不同语言
- 4. 不同的语言
- 5. 不同语言的iPhone info.plist按键用于不同的语言环境
- 6. 用户会话使用不同的语言和MVVM
- 7. 不同语言的页脚
- 8. 不同的语言资源
- 9. SharedPreferences和不同的语言
- 10. DataGridView中的不同语言
- 11. 支持不同的语言
- 12. 两种不同语言的相同图像但不适用于其他语言
- 13. 使用ion_auth用不同的语言
- 14. 不同字体的不同语言
- 15. 不同域名的不同语言
- 16. jQuery的.load()用不同的语言
- 17. Alfresco用户语言
- 18. modx:我如何为不同的用户添加不同的管理员语言?
- 19. HTML根据用户语言显示不同的div
- 20. 不同语言的用户界面,所见即所得
- 21. 可以redis不同的语言客户端可以混用吗?
- 22. 根据用户输入显示不同语言的iPhone键盘
- 23. 显示不同用户语言的Facebook标签内容
- 24. 适用于不同语言的菜单
- 25. strtotime使用不同的语言?
- 26. PHP:使用不同语言的提示
- 27. 用ejabberd解析不同的语言
- 28. SKProduct localizedDescription用不同的语言
- 29. 使用“不同语言”的源代码
- 30. Play Framework - 使用不同语言的TemplateLoader
http://kunststube.net/encoding/和http://kunststube.net/frontback/ – 2013-03-11 10:01:08
感谢。你是个好人! – 2013-03-11 10:03:44