2017-11-17 13 views
1

クエリから国際文字をcsvにエクスポートしようとしています。 CFSPREADSHEETを使用してExcelに書き込むのと同様に、ブラウザへの出力は正常に動作します。Nvarcharデータ型をCSVにエクスポート

私は次のように設定している次のように

  • データソース接続は、JDBC
  • テーブルのフィールドはファイルをレンダリングnvarchar型

ある使用は、次のとおりです。ただし

<cfset filepath="c:/test.csv" /> 
<cfloop query="q"> 
    <cfset string = "" /> 
    <cfset string = listAppend(string, q.fieldname) /> 
    <cffile action="append" file="#filePath#" output="#string#" charset="windows-1252" /> 
</cfloop> 
<cffile action="readbinary" file="#filePath#" variable="bin" charset="windows-1252"> 
<cffile action="delete" file="#filePath#" /> 
<cfheader name="Content-Disposition" value="attachment; filename=Output.csv" charset="windows-1252"> 
<cfcontent type="text/plain" reset="true" variable="#bin#" /> 

特定の文字が正しく変換されていません。例えば: - 上記の例を含む悪い変換の大部分を解決しましたcharset="windows-1252"追加更新

SälzlerとしてJørgen

  • Sälzlerに示すよう

    • ヨルゲンを示します。以下はまだ変換されません

      • KrčobićはKr?obiを表示していますか?
      • Mirosławはミロを示して?AW
      • Bożekがボーを示して?EK
  • +1

    'cffile'タグは、JVMのデフォルトの文字セット(cfadminで設定可能)を使用してファイルに書き込みます。 'charset =" windows-1252'のようなcharset属性を試してください –

    +0

    文字の大半が解決されました!Krčobićのような名前はまだ 'Kr?obi? 'を表示します –

    +0

    [BOMの追加](https: //stackoverflow.com/a/47360000/8895292)?Krčobićと一緒に私のために働いた。 – Ageax

    答えて

    0

    たぶんExcel has issues with UTF8 CSV files. 1つの提案は、それに沿って支援するBOMを追加することですが、結果が異なるバージョンのために混合されます。詳細はフルスレッドを参照してください。

    ... build file string .... 
    <cfset FileWrite(filePath, binaryDecode("EFBBBF", "hex"))> 
    <cfset FileAppend(filePath, string, "utf-8")> 
    
    <cfheader name="Content-Disposition" value="attachment; filename=Output.csv" charset="utf-8"> 
    <cfcontent type="text/plain" reset="true" file="#filePath#" deleteFile="false" /> 
    
    関連する問題