7

nvarchar データ型のフィールドにデンマーク語文字を SQL Server に挿入すると、デンマーク語文字の形式が正しくありません。例: brændstof は brændstof に変換されます。SQL Serverクエリウィンドウから直接の場合、正しく機能しています。そのフィールド(Latin1_Genaral、Danish_Greenlandic_100_CI_AI、Danish_Norwegian_CI_AIなど)に異なる照合を与えてみました。これを達成する方法はありますか。Microsoft Drivers 3.0 for PHP for SQL Server を使用しています。助けてください

4

4 に答える 4

2

リテラルの「æ」の代わりに、同等のCHARを使用して、何が起こるかを確認してください。

于 2013-03-07T13:30:17.623 に答える
2

デンマーク語の文字についてはわかりませんが、SQLSERVERのアルメニア語に問題がありました。私はこの問題をこのように解決しました。

insert into sometable(field) values( N'myArmenianText' );
于 2013-03-07T13:47:10.680 に答える
2

私は回避策を使用しました。テーブルに挿入する前にデンマーク語の文字列をhtmlでエンコードし、表示するときにデコードして戻しました。

于 2013-03-08T10:25:24.490 に答える
1

ここで推測するのと同じように:

問題はMySQLの部分ではなく、PHPの部分にあると思います(デンマーク語専用のそのフィールドにエンコードを使用したことを読みました)。またはそれ以前。HTMLページ(ではなく実際の文字)に「ä」を付けようとしたことがありますäか?質問の例のように、他のいくつかの文字に変換されます。したがって、ここでは2つの可能性があります。

  • ユーザー入力が誤ってURlエンコードされている
  • PHPは、デンマーク語の文字をサポートしないエンコーディングを使用しています。

またはおそらく3&4(可能性は低い):

  • 文字がクライアントに正しく到着しません(サーバーにいくつかの文字を再送信した場合、それが当てはまるかどうかはわかりません)
  • ユーザーエージェントは文字を変換し、不正な形式の文字をサーバーに送信します(または、正しく表示されないため、サーバー上に正しい文字が表示されますが、ブラウザーで表示することはできません)
于 2013-03-07T13:40:42.207 に答える