質問
CSVファイルコネクタで「"(ダブルクォート)」を含むデータを出力した場合に、一つのダブルクォートが自動で二つのダブルクォートになるのはなぜでしょうか。
回答
本動作は、CSVコネクタの仕様となります。
「"」を含むデータを出力する場合、「""」のように2つ続けて出力します。(このように、ダブルクォーテーションに対して、ダブルクォーテーションを付与することをエスケープといいます)
本動作はCSVの公式な仕様(RFC)に準拠しています。
CSV の RFC に関しては「参考情報」をご参照ください。
対応方法
-
ダブルクォーテーションを除外して出力したい場合
例えば、「"aa」というデータを「aa」として出力したい場合、[文字列ごとに置換]ロジックなどの文字列を置換するロジックを使用して、ダブルクォーテーションを空文字に置換できます。
文字列を置換するロジックは複数ありますので、詳細は下記の参考情報よりご確認ください。
-
ダブルクォーテーションをそのまま出力したい場合
可変長コネクタを使用し、可変長ファイル書き込み処理でダブルクォーテーションをエスケープせずに出力することができます。
可変長ファイル書き込み処理につきましては、参考情報よりご参照ください。
参考情報
ダブルクォーテーションのエスケープについて
http://www.ietf.org/rfc/rfc4180.txt
上記サイトの「2. Definition of the CSV Format」に以下の記述があります。
7. If double-quotes are used to enclose fields, then a double-quote appearing inside a field must be escaped by preceding it with another double quote.
文字列を置換するロジックについて
・文字列ごとに置換
https://www.hulft.com/help/ja-jp/HULFTSquare/Content/Designer/Mapper/Convert.htm
・CSVファイルによる置換
https://www.hulft.com/help/ja-jp/HULFTSquare/Content/Designer/Mapper/ConvertByFile.htm
・DBテーブルによる置換
https://www.hulft.com/help/ja-jp/HULFTSquare/Content/Designer/Mapper/ConvertByDB.htm
可変長コネクタについて
・可変長ファイル書き込み
https://www.hulft.com/help/ja-jp/HULFTSquare/Content/Designer/Connector/variablelength_put_data.htm
・可変長書き込みウィザード
https://www.hulft.com/help/ja-jp/HULFTSquare/Content/Designer/Connector/variable_put_wizard.htm
コメント
0件のコメント
記事コメントは受け付けていません。