Php MySQL正则表达式函数土耳其字符问题

Php MySQL正则表达式函数土耳其字符问题,php,mysql,regex,Php,Mysql,Regex,我正在用土耳其语搜索php。在土耳其语字母表中有“i”和“ı”小写字符。也有“I”和“İ”大写字符 在正则表达式函数中找不到Mysql select查询的土耳其语字符,例如:İ-ı。。我的搜索列数据类型字符集UTF-8常规\u ci 我在等你的回答。提前谢谢 您可以通过以下方式解决土耳其语字符问题 使用HTML和JQuery代码,如下所示 函数searchBarReplaceChar(){ searchInput=$.trim($('input[name=“replaceChar”]').va

我正在用土耳其语搜索php。在土耳其语字母表中有“i”和“ı”小写字符。也有“I”和“İ”大写字符

在正则表达式函数中找不到Mysql select查询的土耳其语字符,例如:İ-ı。。我的搜索列数据类型字符集UTF-8常规\u ci


我在等你的回答。提前谢谢

您可以通过以下方式解决土耳其语字符问题

使用HTML和JQuery代码,如下所示

函数searchBarReplaceChar(){
searchInput=$.trim($('input[name=“replaceChar”]').val();
设charMap={
":"[C"]+",,
C:“[CÇ]+”,
Ö:'[OÖ]+',,
O:“[OÖ]+”,
Ş:'[SŞ]+',
S:“[SŞ]+”,
İ:“[Iİ]+”,
I:“[Iİ]+”,
Ü:'[UÜ]+',
U:'[UÜ]+',
Ğ:“[GĞ]+”,
G:“[GĞ]+”,
ç:'[cç]+',
c:“[cç]+”,
ö:'[oö]+',
o:“[oö]+”,
ş:“[sş]+”,
s:“[sş]+”,
ı:“[ıi]+”,
i:“[ıi]+”,
ü:'[uü]+',
u:“[uü]+”,
ğ:“[gğ]+”,
g:“[gğ]+”,
};
让str_数组=searchInput.split(“”);
for(设i=0,len=str_array.length;i


使用排序规则utf8_turkish_ci(或utf8mb4)发送
,并且仅使用该排序规则,MySQL才会处理

I=ı  <  İ=i=Ì=Í=Î=Ï=ì=í=î=ï=Ĩ=ĩ=Ī=ī=Ĭ=ĭ=Į=į
I=ı<İ=I=Ì=Í=Ï=ì=î=ĩ=ī=Ĭ=Į=į
土耳其语的其他重音字母也能正确处理。也就是说,对于
WHERE
ORDER BY
,很少需要使用regexp来正确比较单词

(不需要任何PHP代码。)

更多详情:

该参考文献还指出,
Ş
ş
就像是
s
t
之间的一个字母。等等


如果您的目标是定位带有
ı
İ
的行,请详细说明。这可能涉及到
HEX()
utf8\u bin

我认为这是一个已知的问题什么版本?在MySQL 8.0之前,regexp不适合使用多字节字符。