在MySQL文档中,字符串函数REPLACE()
被称为“多字节安全”。我在使用俄罗斯字符集时遇到了问题。
SELECT REPLACE('оофо', 'о', '*'); -- "**ф*", everything is correct
SELECT REPLACE('оофоо', 'о', '*'); -- "**фоо", NOT CORRECT
我应该在哪里寻找问题的根源?
其他信息:
OS - Windows 7 (Russian), SELECT CHARSET('оофоо'); -- "utf8", SELECT LENGTH('оофоо'); -- "6".
答案 0 :(得分:1)
确保数据库字符集/ coallition为UTF-8
在页面上插入这些俄语字符(表单,textarea
),通过设置Content-Type to
text/html; charset=utf-8
,确保编码为UTF-8。直接在表单中输入俄语文本
输入
在处理此表单的处理页面上,将其插入
数据库,请务必执行SET NAMES utf8
,以便将其存储为UTF-8
之前您预先在单独的查询中插入数据。
在视图中渲染数据库中的内容时,请确保
Content-Type is text/html; charset=utf-8
。
确保内容类型不 windows-1251或 ISO-8859-1 / latin1的。确保数据库charset / coallition不是 ISO-8859-1 / Latin1的。
有关详细信息,请参阅:Fixing encodings