包含日语的XML在MySQL

时间:2019-05-30 23:49:57

标签: mysql xml cjk

我正在使用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,“显式”用于光泽)。

0 个答案:

没有答案