我已使用Microsoft SQL服务器迁移助手将mysql数据库迁移到mssql 2008,但仍然面临编码问题。
有没有办法读取每一行并将unicode转换为UTF-8或windows-1252?
我正在使用以下功能:
Private Function GetDataWithArabic(ByVal srcData As String) As String
Dim iso As Encoding = Encoding.GetEncoding("windows-1252")
Dim unicode As Encoding = Encoding.[Default]
Dim unicodeBytes As Byte() = iso.GetBytes(srcData)
Return unicode.GetString(unicodeBytes)
End Function
数据如下所示,它假设显示阿拉伯语文字:
ÇáãÌäÏÉÇáÅÓÑÇÆíáíÉ:ÓÃÓÊãÊÚÈÞÊáÇáÚÑÈæÐÈÍåã
下面是从原始mysql数据库中获取要知道的编码:
DROP TABLE IF EXISTS 6rp2_on
;
/ *!40101 SET @saved_cs_client = @@ character_set_client /;
/ !40101 SET character_set_client = utf8 /;
CREATE TABLE 6rp2_on
(
session
char(100)NOT NULL DEFAULT'',
time
int(11)NOT NULL DEFAULT'0'
)ENGINE = MyISAM DEFAULT CHARSET = latin1;
/ !40101 SET character_set_client = @saved_cs_client * /;
-
6rp2_on
LOCK TABLES 6rp2_on
WRITE;
/ *!40000 ALTER TABLE 6rp2_on
DISABLE KEYS /;
插入6rp2_on
VALUES('',1381695068);
/ !40000 ALTER TABLE 6rp2_on
ENABLE KEYS * /;
解锁表格;
答案 0 :(得分:0)
Microsoft SQL Server正在以不同方式读取数据。您必须检查MS SQL服务器使用的数据格式类型,尤其是阿拉伯语,然后在传输之前确保要传输的数据采用该格式。查看此文章以获取更多信息:
转到本节:
使用Charset映射控制MySQL VARCHAR
到SQL Server的转换VARCHAR
/ NVARCHAR