2

UTF-8 データを含むライブ MySQL データベースがあります。SQL Server 2005 に移行しようとしています。

すべてのテーブル フィールドとすべてのデータは UTF8 です。

宛先データベースには SQL_Latin1_General_CP1_CI_AS collat​​ion が含まれます。これまでに行ったことは、MySQL データベースへの ODBC 接続を作成し、次のことを行うことでした。

EXEC master.dbo.sp_addlinkedserver @server = N'MYSQL2', @srvproduct=N'MySQL', @provider=N'MSDASQL', @provstr=N'DRIVER={MySQL ODBC 5.1 Driver}; SERVER=SERVERHOST; DATABASE=mysqldb; USER=mysqluser;PASSWORD=PASSWORD; OPTION=3;charset:utf8;';

select * into mssql.dbo.members from openquery(MySQL, 'select * from mysqldb.members');

私の SQL Server の照合順序は Greek_CI_AS です。

宛先データベースには SQL_Latin1_General_CP1_CI_AS 照合があり、それが問題であるかどうかを確認するために、Greek_CI_AS 照合で別のデータベースを作成しました。

インポートはうまくいき、SQL Server のすべてのテーブル フィールドは正しく作成されましたが、格納されたデータには ISO-8859-7 のエンコードが含まれていました (これは、Greek_CI_AS 照合に由来すると思われます)。

現在のサイトには UTF-8 ページがあり、そのままにしておく必要があるため、これは問題です。

Firefox と MDDB2 を使用してデータを取得しようとすると、文字が混乱します。View-> encoding を ISO-8859-7 に変更すると、データが正しく表示されます..しかし、これは解決策ではありません

この移行を行い、移行先の SQL Server で正しいエンコーディングを使用するにはどうすればよいでしょうか?

どんな助けでも感謝します

4

1 に答える 1

0

MS SQL 側で使用しているデータの種類をお知らせください。

VARCHAR または NVARCHAR を使用していますか?

Unicode データを格納する場合は、NVARCHAR を使用する必要があります。

于 2011-03-17T01:02:34.043 に答える