如何在 mysql 或数组中查找未知字符
How to find unknown character in mysql or in array
首先,我使用 utf8mb4_general_ci
排序规则创建了数据库,并使用相同的排序规则创建了 table。然后我用
导入 csv 文件
load data local infile '/mnt/c/Users/justi/Desktop/enml/enml.csv'
into table dict
CHARACTER SET utf8mb4
fields terminated by '\t'
IGNORE 1 ROWS;
样本数据
+--------+----------------+----------------+---------------------------------+
| # id | english_word | part_of_speech | malayalam_definition |
+--------+----------------+----------------+---------------------------------+
| 174569 | .net | n | പുത്തന് കമ്പ്യൂട്ടര് സാങ്കേതികത ഭാഷ |
+--------+----------------+----------------+---------------------------------+
| 116102 | A bad patch | n | കുഴപ്പം പിടിച്ച സമയം |
+--------+----------------+----------------+---------------------------------+
| 219752 | a bag of bones | phr | വളരെയതികം മെലിഞ്ഞ വ്യക്തി അഥവാ മൃഗം |
+--------+----------------+----------------+---------------------------------+
我检查
SELECT malayalam_definition from dict;
然后 var_dump($row);
给出
array(1) { ["malayalam_definition"]=> string(19) "ശരശയ്യ " }
array(1) { ["malayalam_definition"]=> string(22) "പൂമെത്ത " }
array(1) { ["malayalam_definition"]=> string(41) "സുഖകരമായ അവസ്ഥ " }
array(1) { ["malayalam_definition"]=> string(44) "അസുഖകരമായ അവസ്ഥ " }
array(1) { ["malayalam_definition"]=> string(22) "പൂമെത്ത " }
array(1) { ["malayalam_definition"]=> string(123) "സുഖകരമെങ്കിലും സ്വാതന്ത്യ്രമില്ലാത്ത അവസ്ഥ " }
...
您可以在每个单词后找到一个未知字符,例如 "ശരശയ്യ "
。
我试过 select trim(malayalam_definition) from dict
但结果相同。如何找出每个单词后面的那个字符?
将字符串转换为十六进制是一种方法:
SELECT HEX(malayalam_definition),CONCAT("{",malayalam_definition,"}")
FROM dict
WHERE id=116102
首先,我使用 utf8mb4_general_ci
排序规则创建了数据库,并使用相同的排序规则创建了 table。然后我用
load data local infile '/mnt/c/Users/justi/Desktop/enml/enml.csv'
into table dict
CHARACTER SET utf8mb4
fields terminated by '\t'
IGNORE 1 ROWS;
样本数据
+--------+----------------+----------------+---------------------------------+
| # id | english_word | part_of_speech | malayalam_definition |
+--------+----------------+----------------+---------------------------------+
| 174569 | .net | n | പുത്തന് കമ്പ്യൂട്ടര് സാങ്കേതികത ഭാഷ |
+--------+----------------+----------------+---------------------------------+
| 116102 | A bad patch | n | കുഴപ്പം പിടിച്ച സമയം |
+--------+----------------+----------------+---------------------------------+
| 219752 | a bag of bones | phr | വളരെയതികം മെലിഞ്ഞ വ്യക്തി അഥവാ മൃഗം |
+--------+----------------+----------------+---------------------------------+
我检查
SELECT malayalam_definition from dict;
然后 var_dump($row);
给出
array(1) { ["malayalam_definition"]=> string(19) "ശരശയ്യ " }
array(1) { ["malayalam_definition"]=> string(22) "പൂമെത്ത " }
array(1) { ["malayalam_definition"]=> string(41) "സുഖകരമായ അവസ്ഥ " }
array(1) { ["malayalam_definition"]=> string(44) "അസുഖകരമായ അവസ്ഥ " }
array(1) { ["malayalam_definition"]=> string(22) "പൂമെത്ത " }
array(1) { ["malayalam_definition"]=> string(123) "സുഖകരമെങ്കിലും സ്വാതന്ത്യ്രമില്ലാത്ത അവസ്ഥ " }
...
您可以在每个单词后找到一个未知字符,例如 "ശരശയ്യ "
。
我试过 select trim(malayalam_definition) from dict
但结果相同。如何找出每个单词后面的那个字符?
将字符串转换为十六进制是一种方法:
SELECT HEX(malayalam_definition),CONCAT("{",malayalam_definition,"}")
FROM dict
WHERE id=116102