我有一个旧的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'),

最佳答案

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';

10-02 14:03