2011-01-30 20 views
2

Microsoft SQL ServerデータベースからMySQLデータベースにデータをインポートするPHPスクリプトを作成しています。照合Modern_Spanish_CI_AI(SQL Serverの場合)からUTF-8(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での 表の定義を:MySQLの

CREATE TABLE `myTable` (
`myField` varchar(2) COLLATE utf8_unicode_ci NOT NULL, 

答えて

3

CREATE TABLE [dbo].[myTable] (
[myField] varchar(2) COLLATE Modern_Spanish_CI_AS NOT NULL, 

表の定義私は、SQLサーバーとの経験がないが、this collation chartでチラッと見から、Modern_Spanish_CI_AI基本的にはWindows-1252の文字セットのように見えますが、おそらくスペイン語のソート/比較ルールがいくつかあります。

あなたは、このようにデータを変換することができるはずです。

$utf8 = iconv("windows-1252", "utf-8", $input); 

はそれを試してみます。しかし、このためにPHPを使用する場合は、各データベースへの接続のキャラクタセットも役割を果たします。まだ動作しない場合は、さらにコードを表示する必要があります。

+0

これは問題を解決しました。本当にありがとう! –

関連する問題