1

在 MySQL 文档中,字符串函数REPLACE()被称为“多字节安全”。我在使用俄语字符集时遇到问题。

    SELECT REPLACE('оофо', 'о', '*'); -- "**ф*", everything is correct
    SELECT REPLACE('оофоо', 'о', '*'); -- "**фоо", NOT CORRECT

我应该在哪里寻找问题的根源?

附加信息:

OS - Windows 7 (Russian),
SELECT CHARSET('оофоо'); -- "utf8",
SELECT LENGTH('оофоо'); -- "6".
4

1 回答 1

1
  1. 确保数据库字符集/联盟是 UTF-8

  2. 在您插入这些俄语字符(表单 textarea )的页面上,通过设置确保编码为 UTF-8 Content-Type to text/html; charset=utf-8。直接在表单输入中输入俄语文本。

  3. 在处理此表单(将其插入数据库)的处理页面上,请确保在插入数据之前SET NAMES utf8将其存储为 UTF-8 ,预先在单独的查询中进行。

  4. 当您在视图中呈现数据库中的内容时,请确保Content-Type is text/html; charset=utf-8.

  5. 确保内容类型不是windows-1251 或 iso-8859-1/latin1。确保数据库字符集/联盟不是 ISO-8859-1/Latin1。


有关更多信息,请参阅:修复编码

于 2012-08-18T23:08:09.700 回答