【なでしこ】文字コード・改行コードのオトモに。
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 コメント