【なでしこ】文字コード・改行コードのオトモに。
20:25アプリ開発・システム開発をしているとデータ連携の際に文字コードや改行コードが問題になることが結構あります。
きっと、経験されたことのある方も多いでしょう。
私の場合、FileMakerというデータベースソフトで開発を行うことが多いのですが、最近、この問題に直面する機会が多くなりました(ー_ー) データ出力の方法を切り替えたことが起因しているのですが。。。
FileMakerからデータ出力を行う場合、【レコードのエクスポート】というステップを利用することが多いですが、データの出力形式によっては【フィールド内容のエクスポート】というステップを利用する場合があります。こいつがある意味では厄介なんですよ(´・ω・`)
【レコードのエクスポート】ステップの場合、出力時の文字コードを指定することが可能です。その一方で、【フィールド内容のエクスポート】の場合、該当フィールドの内容がテキストだと【UTF-16】フォーマットで出力されるのです!
何故こうなった!?
テキストフィールドが指定されている場合は文字コードを選択できるようにしてくれても良かったのではないか!?
と、まぁ私の場合は嘆くことが多いのですが、きっとメリットもあるのですよね。きっと。。。
SPONSORED LINKS |
日本語プログラム言語「なでしこ」公式バイブル |
■ソースコード:
// ------------------------------------------------------------------ // 文字コード・改行コード変換 // ------------------------------------------------------------------ // 全体設定 !母艦設計 = 『母艦の可視=オフ』 !APP_NAME = 『Converter』 !APP_VERSION = 『1.0』 経過ダイアログ = オフ // ------------------------------------------------------------------ // 母艦設定 母艦について タイトル = APP_NAME 幅 = 100 高さ = 100 スタイル = 枠固定 オフへ最大化ボタン有効変更 母艦を中央移動。 // ------------------------------------------------------------------ // 不要なコマンドライン引数の削除 もし、(コマンドライン[1]が『-debug::*』にワイルドカード一致)ならば、 コマンドライン[1]に(空)を代入。 // 変数の定義 loadFileとは文字列。 saveFileとは文字列。 newCodeとは文字列。 lineFeedとは文字列。 sleepTimeとは数値。 loadFile = コマンドライン[1] saveFile = コマンドライン[2] もし、(saveFile == (空))ならば、 saveFile = loadFile newCode = コマンドライン[3] もし、(newCode == (空))ならば、 newCode = 『Shift_JIS』 lineFeed = コマンドライン[4] もし、(lineFeed == (空))ならば、 lineFeed = 『\r\n』 // ------------------------------------------------------------------ // 文字コードの変換処理 エラー無視 sleepTime = 1 loadData = loadFileを開く 「{sleepTime}」秒待つ。 もし、(loadData == (空))ならば、 終わる。 saveDataとは文字列。 currentCode = loadDataを文字コード調査 もし、(currentCode == newCode)ならば、 saveData = loadData 違えば、 saveData = loadDataをcurrentCodeからnewCodeへ文字コード変換 saveData = saveDataの『 』を『\n』へ正規表現置換。 saveData = saveDataの『\r』を『\n』へ正規表現置換。 saveData = saveDataの(改行)を『\n』へ正規表現置換。 saveData = saveDataの『\n』をlineFeedへ正規表現置換。 saveDataをsaveFileに保存。 終わる。 // ------------------------------------------------------------------
■使用方法:
実行ファイル作成後、コマンドライン引数を渡して起動します。
○引数1: 読込ファイル名
コード変換を行いたいファイルをフルパスで指定します。
○引数2: 保存ファイル名(省略可)
コード変換後、ファイル名を変えて保存したい(上書きしたくない)場合にフルパスで指定します。
省略した場合、読込ファイルが上書きされます。
○引数3: 文字コード(省略可)
変換したい文字コードを指定します。省略した場合、【Shift_JIS】として設定されます。
○引数4: 改行コード(省略可)
変換したい改行コードを指定します。省略した場合、【CRLF】として設定されます。
SPONSORED LINKS |
0 コメント