Utf*_*tf8 5 database mysql charset utf-8 diacritics
我有一个包含多个表的数据库。数据库和表以及表的每一行都设置为utf8_romanian_ci.
我导入的每个包含变音符号的名称都不会正确显示。
例如:如果我MaÂehx在表中介绍我刚刚M
表中的数据是从csv文件中导入的。在 Excel 中,变音符号正常显示。
我该如何解决这个问题?
UTF-8 是个善变的情妇。对于典型的 Web 应用程序,您必须在多个级别设置 UTF-8。即使 phpMyAdmin 代码可以很好地使用 UTF8,它也不是在真空中运行:服务器配置很重要。数据库也是如此,数据库的数据源也是如此。让我们总结一下一般应用程序中潜在摩擦的领域,特别关注 phpMyAdmin 感兴趣的领域。
\n\nA. 数据来源
\n\n当数据(例如从文本文件)导入数据库时,它必须具有正确的编码。Excel 中可能会显示变音符号,但编码可以是任何内容。因此,您可能拥有一个看起来正确但无法正确导入的 CSV 文件。您可以在文本编辑器(例如 EditPad)或 IDE(例如 Komodo)中检查和转换 CSV 文件的编码。在很多人都有的Notepad++中,你可以选择“编码”来查看你当前的编码,你可以根据需要选择编码/转换为UTF8。
\n\nB. 在您的数据库中。表的字符集和排序规则必须设置为 UTF-8。听起来您可能已经这样做了。
\n\n如果没有,你需要类似的东西:
\n\nALTER TABLE MyTable\nDEFAULT CHARACTER SET utf8,\nCOLLATE utf8_general_ci;\nRun Code Online (Sandbox Code Playgroud)\n\n这是通用设置,但您的罗马尼亚语排序规则也应该可以正常工作。
\n\nC. 与数据库的连接。你需要类似的东西:
\n\n$connectDSN = "mysql:host={$db_host};dbname={$db_name};charset=UTF-8";\nRun Code Online (Sandbox Code Playgroud)\n\nPhpMyAdmin 应正确连接。在登陆页面上,您应该看到
\n\nServer charset: UTF-8 Unicode (utf8) \nRun Code Online (Sandbox Code Playgroud)\n\n如果没有,请继续阅读。
\n\nD. php必须处理UTF8。在 php.ini 中,您需要类似以下内容:
\n\ndefault_charset = UTF-8 \nmbstring.language = Neutral \nmbstring.internal_encoding = UTF-8 \nmbstring.encoding_translation = On \nmbstring.http_input = auto \nmbstring.http_output = UTF-8 \nmbstring.detect_order = auto \nmbstring.substitute_character = \xe2\x80\x9c0xFFFD\xe2\x80\x9d \nRun Code Online (Sandbox Code Playgroud)\n\n您可以使用 phpinfo() 检查您的服务器设置。在共享主机上,您通常无权访问 php.ini,必须直接在脚本中更改设置。\n顺便说一句,请记住使用 mb 函数。
\n\nE. 标头设置
\n\n为了让浏览器知道它正在获取什么,它需要接收 php 发送的如下标头:
\n\n<?php header(\'Content-type: text/html; charset=UTF-8\'); ?>\nRun Code Online (Sandbox Code Playgroud)\n\n这不应该是 phpMyAdmin 的问题。\n在 Firefox 中,使用 Web Developer 扩展,您可以转到“信息”/“查看页面信息”。在“常规”选项卡中,这将显示编码。
\n\nF. HTML 元标记
\n\n建议这样做以帮助浏览器。
\n\n<meta charset="UTF-8">\nRun Code Online (Sandbox Code Playgroud)\n\n这不应该是 phpMyAdmin 的问题。\n再次在浏览器中检查它所看到的编码。
\n\nG.字体
\n\n浏览器可能没有显示某些字符的字体,尽管现代版本对于后备字体非常好。对于您的情况来说,这可能不是问题。
\n\n所以有很多地方可能会出错。
\n\n希望这可以帮助您识别问题!
\n\n当一切都排列好后,神奇的事情就发生了……你会发现到处都是 UTF8。
\n\n并且不要忘记:
\n\n\xe0\xb2\xac\xe0\xb2\xbe \xe0\xb2\x87\xe0\xb2\xb2\xe0\xb3\x8d\xe0\xb2\xb2\xe0\xb2\xbf \xe0\xb2\xb8\xe0 \xb2\x82\xe0\xb2\xad\xe0\xb2\xb5\xe0\xb2\xbf\xe0\xb2\xb8\xe0\xb3\x81\xe0\xb2\x87\xe0\xb2\x82\xe0\xb2 \xa6\xe0\xb3\x86\xe0\xb2\xa8\xe0\xb3\x8d\xe0\xb2\xa8 \xe0\xb2\xb9\xe0\xb3\x83\xe0\xb2\xa6\xe0\xb2\xaf \xe0\xb2\xa6\xe0\xb2\xb2\xe0\xb2\xbf
\n\n\xe0\xb2\xa8\xe0\xb2\xbf\xe0\xb2\xa4\xe0\xb3\x8d\xe0\xb2\xaf\xe0\xb2\xb5\xe0\xb3\x82\xe0\xb2\x85\xe0 \xb2\xb5\xe0\xb2\xa4\xe0\xb2\xb0\xe0\xb2\xbf\xe0\xb2\xaa\xe0\xb2\xb8\xe0\xb2\xa4\xe0\xb3\x8d\xe0\xb2 \xaf\xe0\xb2\xbe\xe0\xb2\xb5\xe0\xb2\xa4\xe0\xb2\xbe\xe0\xb2\xb0
\n| 归档时间: |
|
| 查看次数: |
21400 次 |
| 最近记录: |