将MySQL表中的HTML外部字符转换为utf-8字符


Converting HTML foreign characters from MySQL tables to utf-8 characters

我的MySQL和使用utf-8有问题,我最终使用HTML字符,但我开始非常后悔。我现在有4个表,有很多外文字符保存为HTML。

我已经能够重写编程和设置MySQL正确处理utf-8,但将字符串转换为utf-8的最好方法是什么?

INSERT INTO `languages` (`id`, `title`, `native`, `alias`, `status`, `weight`, `updated`, `created`) VALUES
(1, 'English', 'English', 'en', 1, 1, '2009-11-02 21:37:38', '2009-11-02 20:52:00'),
(2, 'Dutch', 'Nederlands', 'nl', 1, NULL, '0000-00-00 00:00:00', '0000-00-00 00:00:00'),
(8, 'French', 'Français', 'fr', 1, NULL, '0000-00-00 00:00:00', '0000-00-00 00:00:00'),
(3, 'Spanish', 'Español', 'es', 1, NULL, '0000-00-00 00:00:00', '0000-00-00 00:00:00'),
(4, 'Italian', 'Italiano', 'it', 1, NULL, '0000-00-00 00:00:00', '0000-00-00 00:00:00'),
(6, 'German', 'Deutsch', 'de', 1, NULL, '0000-00-00 00:00:00', '0000-00-00 00:00:00'),
(7, 'Portuguese', 'Português', 'pt', 1, NULL, '0000-00-00 00:00:00', '0000-00-00 00:00:00'),
(11, 'Swedish', 'Svenska', 'sv', 1, NULL, '0000-00-00 00:00:00', '0000-00-00 00:00:00'),
(9, 'Polish', 'Polski', 'pl', 1, NULL, '0000-00-00 00:00:00', '0000-00-00 00:00:00'),
(12, 'Russian', 'Русский', 'ru', 1, NULL, '0000-00-00 00:00:00', '0000-00-00 00:00:00'),
(13, 'Afrikaans', 'Afrika', 'af', 1, NULL, '0000-00-00 00:00:00', '0000-00-00 00:00:00'),
(14, 'English', 'English', 'en', 1, NULL, '0000-00-00 00:00:00', '0000-00-00 00:00:00'),
(15, 'Albanian', 'Shqip', 'sq', 1, NULL, '0000-00-00 00:00:00', '0000-00-00 00:00:00'),
(16, 'Arabic', 'العربية', 'ar', 1, NULL, '0000-00-00 00:00:00', '0000-00-00 00:00:00'),
(17, 'Farsi', 'الفارسية', 'fa', 1, NULL, '0000-00-00 00:00:00', '0000-00-00 00:00:00'),
(18, 'Chinese (traditional)', '中文(繁體)', 'cht', 1, NULL, '0000-00-00 00:00:00', '0000-00-00 00:00:00'),
(19, 'Japanese', '日本', 'ja', 1, NULL, '0000-00-00 00:00:00', '0000-00-00 00:00:00'),
(20, 'Latin', 'Latina', 'la', 1, NULL, '0000-00-00 00:00:00', '0000-00-00 00:00:00'),
(21, 'Chinese (simplified)', '中文(简体)', 'chs', 1, NULL, '0000-00-00 00:00:00', '0000-00-00 00:00:00'),
(22, 'Turkish', 'Türkçe', 'tr', 1, NULL, '0000-00-00 00:00:00', '0000-00-00 00:00:00'),
(23, 'Catalan', 'Català', 'ca', 1, NULL, '0000-00-00 00:00:00', '0000-00-00 00:00:00'),
(24, 'Hindi', 'हिन्दी', 'hi', 1, NULL, '0000-00-00 00:00:00', '0000-00-00 00:00:00'),
(25, 'Hungarian', 'Magyar', 'hu', 1, NULL, '0000-00-00 00:00:00', '0000-00-00 00:00:00');   

上面是一个SQL数据的例子

通过PHP往返数据。做一个选择,抓取相关字段并通过htmlentities()运行它们以转换回实际字符,然后将数据填充回数据库。

MySQL本身没有任何实体编码/解码支持,所以做往返是最快/最简单的修复。