从整理现代
我正在编写一个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_AI
, Modern_Spanish_CI_AI
似乎基本上是一个Windows-1252字符集,可能在顶部有一些西班牙语排序/比较规则。
你应该能够像这样转换数据:
$utf8 = iconv("windows-1252", "utf-8", $input);
试试看。 然而,当为此使用PHP时,连接到每个数据库的字符集也扮演一个角色 - 如果它仍然不起作用,则需要显示更多代码。
链接地址: http://www.djcxy.com/p/25179.html