gpt4 book ai didi

MySQL Replace() 函数不能为非拉丁字符提供正确的输出

转载 作者:行者123 更新时间:2023-11-29 00:41:40 24 4
gpt4 key购买 nike

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

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

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

附加信息:

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

最佳答案

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

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

  3. 在处理此表单的处理页面上,将其插入到 数据库,确保执行 SET NAMES utf8 以便将其存储为 UTF-8 插入数据之前,事先在一个单独的查询中。

  4. 当您在 View 中呈现来自数据库的内容时,确保 Content-Type 是 text/html; charset=utf-8.

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


有关更多信息,请参阅:Fixing encodings

关于MySQL Replace() 函数不能为非拉丁字符提供正确的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12022765/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com