法语/英语和日语的SQL条目

时间:2019-12-19 13:51:42

标签: mysql sql phpmyadmin character-encoding

我有一个旧的SQL4数据库,我正在尝试将其重新上传到Phpmyadmin上新创建的数据库。表格中的字符是拉丁文和日文。我尝试更改这些特定的列,但是结果仍然是我需要用日语显示的列的残破字符。

以下是我的问题的屏幕截图:https://imgur.com/a/P6GWrnF

作为示例,SQL代码如下所示:


CREATE TABLE `bdd` (
  `id` int(11) NOT NULL,
  `ville` varchar(50) NOT NULL DEFAULT '',
  `nom_fr` varchar(80) NOT NULL DEFAULT '',
  `nom_jp` varchar(250) CHARACTER SET sjis NOT NULL DEFAULT '',
  `adr_fr` text NOT NULL,
  `adr_jp` varchar(3000) CHARACTER SET sjis NOT NULL,
  `tel` varchar(20) NOT NULL DEFAULT '0',
  `plan` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


INSERT INTO `bdd` (`id`, `ville`, `nom_fr`, `nom_jp`, `adr_fr`, `adr_jp`, `tel`, `plan`) VALUES
(47, 'Tokyo', 'THE KNOT TOKYO Shinjuku', '?U ?m?b?g ?????V?h', '4-31-1 Nishi Shinjuku, Shinjuku Ku, Tokyo', '?????s?V?h???V?h4-31-1', '03-3375-6511', 'the knot.JPG'),
(3546, 'Tokyo', 'HOSHINOYA Tokyo', '???????', '1-9-1 Otemachi, Chiyoda-ku, Tokyo 100-0004', '??100-0004 ?????s?????c??????????9??1', '0570-073-066', 'HOSHINOYA TOKYO.JPG'),

2 个答案:

答案 0 :(得分:0)

SET NAMES "utf8";
CREATE TABLE `bdd` (
  `id` int(11) NOT NULL,
  `ville` varchar(50) NOT NULL DEFAULT '',
  `nom_fr` varchar(80) NOT NULL DEFAULT '',
  `nom_jp` varchar(250) CHARACTER SET sjis NOT NULL DEFAULT '',
  `adr_fr` text NOT NULL,
  `adr_jp` varchar(3000) CHARACTER SET sjis NOT NULL,
  `tel` varchar(20) NOT NULL DEFAULT '0',
  `plan` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT whatever you want

最好将所有内容都存储在utf8中,因为它有多种语言。在插入之前,您需要相应地设置连接参数,以便服务器可以了解您要发送的内容。顺便说一句,也许你必须 SET NAMES 'sjis';

答案 1 :(得分:0)

问题解决了。 我不再尝试更改编码,而是在utf8mb4_unicode_ci中创建了一个包含所有行的新表,并将数据导入了该新表中。