我正在使用Workbench和MySQL将XML文件加载到数据库中。 XML文件(我未创建)在标记内部具有标记,其中一些是日语的。我不确定我是否正确处理了UTF-8。
我尝试将字符设置为utf8和utf8mb4,并整理为utf8mb4_unicode_520_ci,utf8_general_ci,utf8mb4_unicode_ci和utf8mb4_unicode_520_ci。我还阅读了MySQL参考手册中有关中文,韩文和日文(CKJ)字符的部分。人们似乎通常会收到“ ??”与涉及UTF8的CKJ错误有关,但是我们得到了NULL。我也尝试过在CHAR,VARCHAR,NVARCHAR和NCHAR之间切换...
我们的XML条目如下:
<entry>
<ent_seq>1000220</ent_seq>
<k_ele>
<keb>明白</keb>
<ke_pri>ichi1</ke_pri>
<ke_pri>news1</ke_pri>
<ke_pri>nf10</ke_pri>
</k_ele>
<r_ele>
<reb>めいはく</reb>
<re_pri>ichi1</re_pri>
<re_pri>news1</re_pri>
<re_pri>nf10</re_pri>
</r_ele>
<sense>
<pos>&adj-na;</pos>
<gloss>obvious</gloss>
</sense>
</entry>
MySQL是:
CREATE DATABASE main_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE main_db;
CREATE TABLE IF NOT EXISTS jmdict(
ent_seq VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL PRIMARY KEY,
keb VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
reb VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
pos VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
lsource VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
gloss VARCHAR(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci # english
);
LOAD XML INFILE "[file location]"
INTO TABLE jmdict
CHARACTER SET utf8mb4
ROWS IDENTIFIED BY '<entry>';
我希望在keb字段中有“明白”,在reb字段中有“めいはく”,但是我在这两个字段中都得到了NULL(并且我在ent_seq,“&adj”中正确得到了“ 1000220” -na;”(用于pos,“显式”用于光泽)。