gpt4 book ai didi

php - 将全角和半角字符存储在数据库的唯一列中

转载 作者:行者123 更新时间:2023-11-29 02:22:45 29 4
gpt4 key购买 nike

我有一个单词列表存储在 mysql 中,大小约为 10k 个单词。该列被标记为唯一。但是,我无法插入标点符号的全角和半角字符。
这里有一些例子:

(half-width, full-width)
('?', '?')
('/', '/')

目的是,我有很多文章同时包含全角和半角字符,想看看文章中是否包含这些词。我用 php 做比较,它可以知道 '?'不同于'?'。有什么想法也可以在 mysql 中做到这一点吗?或者有什么方法可以让 php 使它们相等?

数据库编码我用的是utf8_unicode_ci,列也是用utf8_unicode_ci编码的。当我进行这些查询时,两者都返回相同的记录,'?测试'

SELECT word FROM word_list WHERE word='?測試'
SELECT word FROM word_list WHERE word='?測試'

最佳答案

最有可能的解释是字符集翻译问题;例如,您要将值存储到的列被定义为 latin1 字符集。

但这不一定是导致问题的列的字符集。这是某处发生的字符集转换。

如果您不了解字符集编码,我建议您查阅所有知识的来源:google。

我强烈推荐此搜索的两个热门结果:

what every programmer needs to know about character encoding

http://www.joelonsoftware.com/articles/Unicode.html

http://kunststube.net/encoding/

关于php - 将全角和半角字符存储在数据库的唯一列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28621199/

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