我有一个旧的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'),
答案 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中创建了一个包含所有行的新表,并将数据导入了该新表中。