編集: Sharondio からの修正: 「-- 非ラテン文字用に構成されたデータ ソースの拡張 ASCII 文字と Unicode を有効にする」設定は、cfadmin データソースの詳細設定でチェックされていますか? 完全なパスは、CFAdmin --> Data & Services --> Datasources --> データソースをクリック --> [Show Advanced Settings] をクリック --> 上記のボックスにチェックを入れます。
CSV ファイルを取り込み、データを SQL Server データベースに挿入するバッチ インポート ページ (Coldfusion 内) を作成しようとしています。CSV ファイルには、中国語、韓国語、ヒンディー語、タイ語など、ローマ字を使用しない言語を含む、さまざまな言語のデータを含めることができます。
インポートを実行すると、ローマ字以外の文字を含むものはすべて SQL Server Management Studio に疑問符の文字列として表示され、Coldfusion アプリケーションでデータを出力しようとしても疑問符が表示されます。以前に入力されたアラビア語のデータは Web サイトと管理スタジオで適切に表示されるため、私のサイトまたはデータベースのエンコーディングの問題のようには見えません。
UTF-8 および UTF-16 でエンコードされた CSV ファイル (Excel およびメモ帳で作成) を試しましたが、どちらも機能しませんでした。私は SQL Server 2000 を使用しています。照合は SQL_Latin1_General_CP1_CI_AS に設定されます。私が挿入している列はntextです。
いくつか読んだ後、挿入ステートメントを変更して、挿入された文字列の前に N 文字を付けようとしました (つまり、table_blah (列) 値 (N'stuff') に挿入) が、違いはありませんでした。
この時点で、誰かが提供できるヒントやガイダンスを探しています。ありがとう。
@ジェイク・フィーゼルを編集
挿入しようとしているテーブル:
ID int
Language_ID int
Value ntext
挿入しようとしているのは、次の形式の CSV です。
English French Chinese Hindi Thai German
Course cours 课程 कोर्स หลักสูตร Kurs
Student étudiant 学生 छात्र นักเรียน Schüler
これは、Coldfusion クエリを介してデータベースに挿入されています (インポートされた CSV をループし、適切な言語 ID 値と翻訳された値を挿入します)。
<cfquery name="insert_values" datasource="#APPLICATION.DSN#">
INSERT INTO tbl_language_value (Language_ID, Value)
VALUES (
<cfqueryparam cfsqltype="cf_sql_integer" value="3" />,
<cfqueryparam cfsqltype="cf_sql_varchar" value="นักเรียน"
)
SELECT SCOPE_IDENTITY() AS 'New_ID';
</cfquery>
クエリの結果をダンプすると、クエリ自体がローマ字以外の言語の適切な文字を取得していることがわかりますが、何らかの理由でそれらがデータベースに挿入されていません。