Microsoft SQL Server Migration Assistant を使用して 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
6rp2_on
テーブルの書き込みをロックします。/*!40000 ALTER TABLE6rp2_on
無効化キー/; 値に挿入6rp2_on
('',1381695068); / !40000 ALTER TABLE 6rp2_on
ENABLE KEYS */; テーブルのロックを解除します。