2016-09-26 8 views
3

私はLucee上で実行されているColdfusionアプリケーションをSQL Serverデータベースに接続しています。CFQUERYから特定の文字がSQL Serverに正しく挿入されないのはなぜですか?

私はSQL Serverのマネージャーに直接次のクエリを実行します。

UPDATE article 
SET content='20m²' 
WHERE id=3159 

列は20㎡で細かい読み込まれます。 ID = 3159

列がで埋めます= '20㎡'

UPDATE記事 SET内容::20m²

は 単純にこれを実行しますCFMLページから実行もつとも

と同様に、この追加のÂ文字が表示されます。これは他のいくつかの特殊文字でも発生しますが、大部分は問題ありません。これはjdbcコネクタのいくつかの設定と関係がありますか?私は上記の2つの違いがどうなるか分かりません。 cfqueryparamタグに値を入れても差はありません。それは、ハードコーディングされています場合

おかげ

+0

どのバージョンのCFですか? CF11未満であれば、 'cfprocessingdirective'を見てみたいかもしれません。 – Beginner

+1

どのような列ですか?それはNVarcharですか?処理ディレクティブが機能しない場合は、Unicode構文 'content =N'20m²''を試すことができます...また、" cfqueryparam "を使用して変数をバインドすることを確認してください。 –

+1

ファイルはWindows1252またはUtf8でエンコードされていますか?サーバーはファイルに別のエンコーディングを期待していますか? –

答えて

3

は、私はあなたがUnicodeのUTF-8にそのファイルを保存することを確認したいと思うと信じています。

enter image description here

また、あなたのJVM引数は、同様のことを処理することを確認してください。 管理者>サーバー設定> JavaとJVM。 "-Dfile.encoding = UTF-8"を引数に追加します。

enter image description here

+0

dbクエリが含まれているので、ページのエンコーディングを変更するだけではありません.--ほとんどの場合、ハードコーディングはとにかくテスト用です。したがって、正しい値が確実にデータベースに送信され、適切に格納されるようにする方法が問題のもう一つの側面です。完全なサイクルを詳しく調べることは良いことです。 – Leigh

+0

削除のプロセス - '20m²'のファイルが保存され、正しく読み返されていることを確認してください。それは事のdbの終わりがうまく動作している可能性があります。 – Jules

関連する問題