Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php utf8mb4_unicode_ci或utf8mb4_danish_ci_Php_Mysql_Utf 8_Character Encoding_Utf8mb4 - Fatal编程技术网

Php utf8mb4_unicode_ci或utf8mb4_danish_ci

Php utf8mb4_unicode_ci或utf8mb4_danish_ci,php,mysql,utf-8,character-encoding,utf8mb4,Php,Mysql,Utf 8,Character Encoding,Utf8mb4,在我的丹麦网站上,utf8mb4\u unicode\u ci和utf8mb4\u danish\u ci(mysql/mariadb数据库)似乎都能正常工作 当我测试字符/符号/表情时,它们似乎都显示相同的结果。 像æ/ø/å这样的丹麦字母在这两种语言中都适用 为什么我要选择一个字符集/排序规则而不是另一个? utf8mb4\u danish\u ci是否添加字符/代码,或者它实际上比utf8mb4\u unicode\u ci更窄?要区分和排序表情符号,我认为您需要基于unicode 5.2

在我的丹麦网站上,
utf8mb4\u unicode\u ci
utf8mb4\u danish\u ci
(mysql/mariadb数据库)似乎都能正常工作

当我测试字符/符号/表情时,它们似乎都显示相同的结果。
像æ/ø/å这样的丹麦字母在这两种语言中都适用

为什么我要选择一个字符集/排序规则而不是另一个?


utf8mb4\u danish\u ci
是否添加字符/代码,或者它实际上比
utf8mb4\u unicode\u ci
更窄?

要区分和排序表情符号,我认为您需要基于unicode 5.20的
utf8mb4\u unicode\u 520\u ci
utf8mb4\u unicode\u ci
基于旧版4.0。(我不知道如何比较表情符号)MySQL 8.0将推出9.0版本:
utf8mb4\u 0900\u ai\u ci

对于
utf8mb4_danish_ci
z
之后的每个排序。也就是说
y

对于
utf8mb4_unicode_ci
æ
的作用类似于
a
b
之间的字母<代码>ø
介于
o
p
之间<代码>å=a

对于
utf8mb4_unicode_520_ci
utf8mb4_0900_ai_ci
æ=ae
<代码>ø=o<代码>å=a

这完全取决于您是否关心这三个字符的比较(
WHERE
)和排序(
orderby
),如上所述

更多详细信息和更多排序规则:


你没有问,但丹麦人似乎说
Ä=Æ=ä=æ<Ö=Ø=ö=ø;这些似乎迎合了冰岛语和瑞典语。

字符集是
utf8mb4
utf8mb4_danish_ci
是“用于比较字符集中字符的一组规则”的排序规则。那么为什么选择utf8mb4_unicode_ci而不是utf8mb4_danish_ci呢?它是用于比较,而不是存储<代码>字符/符号/表情符号
不会成为问题,字符/代码也不会成为问题。它们都支持相同的字符集。好啊我怀疑我会比较utf8字符/代码,而只比较iso字符。utf8mb4只是为了让用户能够在我的网站上的文本字段中使用表情符号等。所以我想这更多的是一个表现的问题?(就我而言)是的,至少我对它的理解是这样的。我会把它留给更有经验的人,以防我错过了一些麻烦。