从整理现代

我正在编写一个PHP脚本来将一些数据从Microsoft SQL Server数据库导入到我的MySQL数据库中。

SQL Server中的排序是Modern_Spanish_CI_AI(所以我猜编码是ASCII),而在我的MySQL数据库中,我使用UTF-8编码和utf8_unicode_ci作为归类。

当我导入数据时,我得到了与西班牙文字母Ñ相对应的错误字符。 我试图用PHP函数utf8_encode($ string)和mb_convert_encoding($ string,“UTF-8”)没有任何成功,(我有不同的错误字符,但仍然错误)。

也许这有助于:SQL Server中的表定义:

CREATE TABLE [dbo].[myTable] (
[myField] varchar(2) COLLATE Modern_Spanish_CI_AS NOT NULL,

MySQL在MySQL中的定义

CREATE TABLE `myTable` (
`myField` varchar(2) COLLATE utf8_unicode_ci NOT NULL,

我没有使用SQL服务器的经验,但从粗略浏览此排序图表Modern_Spanish_CI_AIModern_Spanish_CI_AI似乎基本上是一个Windows-1252字符集,可能在顶部有一些西班牙语排序/比较规则。

你应该能够像这样转换数据:

$utf8 = iconv("windows-1252", "utf-8", $input);

试试看。 然而,当为此使用PHP时,连接到每个数据库的字符集也扮演一个角色 - 如果它仍然不起作用,则需要显示更多代码。

链接地址: http://www.djcxy.com/p/25179.html

上一篇: From collation Modern

下一篇: Insert a ♥ into MySQL (heart character) via PHP