使用vb.net函数编码mssql数据

时间:2013-11-11 15:28:18

标签: sql-server vb.net encoding character-encoding

我已使用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 * /; 解锁表格;

1 个答案:

答案 0 :(得分:0)

Microsoft SQL Server正在以不同方式读取数据。您必须检查MS SQL服务器使用的数据格式类型,尤其是阿拉伯语,然后在传输之前确保要传输的数据采用该格式。查看此文章以获取更多信息:

http://blogs.msdn.com/b/ssma/archive/2011/04/29/converting-from-mysql-to-sql-server-working-with-data-types.aspx

转到本节:

使用Charset映射控制MySQL VARCHAR到SQL Server的转换VARCHAR / NVARCHAR