【问题标题】:Collation type For Portuguese排序规则类型 葡萄牙语
【发布时间】:2012-10-25 00:09:15
【问题描述】:

我想插入“ã”、“é”、“ó”、“ç”(德沃夏克国际)等葡萄牙语-巴西语言文本。 我在数据库中设置的排序规则类型是: utf8_general_ci 但它不起作用。我正在尝试将其粘贴到这里,但这里显示正常。但在数据库中它没有以正确的方式显示。

那么,请告诉我哪种排序规则适合葡萄牙语。

我的 HTML 页面字符编码是:

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

【问题讨论】:

  • pt-BR 不是编码
  • 如果我不解决 pt-BR 的话,那么 ?ass?d
  • 请阅读以上链接文章。你需要声明你的内容是什么encoding,这取决于你如何从数据库中获取它。 "pt-BR" 是一个locale,即对一种language(巴西葡萄牙语)的描述,encoding 是别的东西,与此无关使用语言(例如UTF-8、ISO-8859-1等)。
  • "set names utf8" - "SET NAMES 表示客户端将使用什么字符集向服务器发送 SQL 语句。"

标签: php collation


【解决方案1】:

UTF-8 应该适用于葡萄牙语。

试试这个:

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

编辑:

那么可能会发生两件事:

  1. 数据库中的字符串编码错误
  2. 文件编码错误。 (以 UTF-8 以外的其他方式编码)。

【讨论】:

  • 不,如果我把它作为 Utf-8 而不是葡萄牙语单词显示为 ????,它就不起作用。
  • 我在数据库中使用 utf8_general_ci 排序规则。
  • 但是 Kaern 如果我没有在我的 HTML 代码中使用 pt-BR 比葡萄牙语单词显示不正确。,你可以尝试为葡萄牙语设置 UTF8,它不起作用。
  • 她的意思是您的数据库编码和传递到数据库的数据可能不匹配
【解决方案2】:

作为一名巴西程序员,我曾多次遇到过这种情况。问题是,根据我的经验,简单地使用正确的字符集对页面进行编码(如果是 ISO-8859-1 的巴西葡萄牙语),并不能解决问题。

数据库和页面都必须进行相应的编码。据我所知,在问题的 HTML 部分中,元标记应如下所示:

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

注意:正如 Tivie 在另一个答案中指出的那样,仅通过元标记设置字符集是不够的。文件(example.htm)的编码也必须设置为 Ansi 而不是 Unicode 或 UTF-8,否则重音字符(如 á ô í ç)将无法正确显示。

关于数据库,为了正确检索信息和显示,您还必须设置正确的字符集和排序规则,如下所示(对于 MySQL):

字符集:latin1 -- cp1252 西欧

排序规则:latin1_swedish_ci(尽管是“瑞典语”,但它最适合巴西葡萄牙语。)

【讨论】:

    【解决方案3】:

    我敢打赌,您的文件编码与您的元标记不匹配,因为传递无效字符集似乎可以正确显示字符。

    例子:

    你有一个 index.html

    如果在 index.html 中添加&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;,那么文件编码应该是 UTF-8 而不是别的。

    您可以在 Windows 上使用 notepad++ 查找文件的编码。如果您使用的是 MAC,您的文件可能使用 MacRoman 编码。

    查看此链接,它解释了如何使用 Notepad++ 检查文件编码:http://www.abdullahyahya.com/2011/09/22/find-out-a-files-encoding-on-windows/

    【讨论】:

    • 好的,所以我也修复了我的文件和数据库中的编码 utf-8,但仍然显示错误的字符,但有一件事是我的一个具有文本类型的文件被正确覆盖并存储了 fien但其他在 varchar 中的则给出了问题。
    • 您应该仔细检查从网络服务器发送的编码。 .htaccess 可以默默地覆盖您在网页中所做的一切,而您永远不会知道。 w3.org/International/questions/qa-headers-charset.en.php