次のステージは、F.utf16 BLOB変数の内容をファイルシステム(utf16_outputという名前のファイル)に保 存することです。Blb2File関数でこれを行います。
1. [フローデータ構成]ダイアログボックスで、[追加]をクリックしてください。
2. [アクション]カラムで、ドロップダウンリストからUpdateを選択してください。
3. [タイプ]カラムで、Flowを選択してください。
4. [名前]カラムで、以前に作成したF.log 論理変数を選択してください。
5. [更新式]カラムで、 をクリックして式エディタを開きます。
6. 式エディタで、以下の式(以下のイメージに示するような)を入力してください、次に
[OK]をクリックしてください。
Blb2File ( F.utf16 , EnvVal('currentprojectdir') &'utf16_output.txt')
次に、ステップ6(上記)で定義したutf16_output.txtファイルで何が作成されるかを確認するため、プロジ ェクトを実行してください。
1. [フローデータ構成]ダイアログボックスを閉じるために、[OK]をクリックしてく ださい。
2. プロジェクトをビルドしください。
3. Magic xpiモニタを開き、プロジェクトを開始します。
4. <My Documents>\Magic\projects\<現 在 の プ ロ ジェ ク ト>フォルダ を開いてく ださい 。 utf16_output.txtファイルが作成されていることを確認できます。
utf16_output.txtファイルを開くと、その内容が破損していることに注意してください。
さて、UTF8toUnicode関数を使用して、UTF-8ファイルをUnicodeに変換するために以下の変更をする 必要があります。これによって、正しくエンコードされた内容を受け取ることができます。
1. [フローデータ構成]ダイアログボックスの2番目の行に移動し、[削除]をクリッ クしてください。
2. 新規行を作成するために、[追加]をクリックしてください。
3. [アクション]カラムで、ドロップダウンリストからUpdateを選択してください。
4. [タイプ]カラムで、Flowを選択してください。
5. [名前]カラムで、以前に作成したF.utf16 BLOB変数を選択してください。
6. [エンコーディング]カラムで、Unicodeを選択してください。
7. [更新式]カラムで、 をクリックして式エディタを開きます。
8. 式エディタで、以下の式(以下のイメージに示するような)を入力してください、次に
[OK]をクリックしてください。
UTF8toUnicode ( F.utf8 )
9. テーブルの2番目の行までこの新規エントリを移動させるために、[フローデータ構 成]ダイアログボックスの右側の上カーソルキーを使用してください。
10. [フローデータ構成]ダイアログボックスの3番目のエントリで[更新式]カラムに 移動して をクリックして式エディタを開きます。
11. 式を以下のように変更してください。
Blb2File ( F.utf16 , EnvVal('currentprojectdir') &'utf16_output_valid.txt')
さて、ステップ11(上記)で定義したutf16_output_valid.txtファイルがどのように作成されるかを確認するた めに、再びプロジェクトを実行してください。
1. [フローデータ構成]ダイアログボックスを閉じるために、[OK]をクリックしてく ださい。
2. プロジェクトをビルドしください。
3. Magic xpiモニタを開き、プロジェクトを開始します。
4. <My Documents>\Magic\projects\<現 在 の プ ロ ジェ ク ト>フォルダ を開いてく ださい 。 utf16_output.txtファイルが作成されていることを確認できます。
utf16_output_valid.txtファイルを開くと、その内容が正しくエンコードされることが確認できるはずです。こ れは、UTF-8の内容をUnicodeに変換するために、UTF8toUnicode関数を使用したためです。
関連トピック:
UTF-8 の内容を含む Unicode BLOB をバイナリ BLOB に変換するには
Magic xpiは、簡単にUnicode BLOBをUTF-8の内容を含んだバイナリBLOBに変換することができま す。UTF8fromUnicode関数を使用してこれを行うことができます。
このトピックは、UTF-8の内容を含むバイナリBLOBをUnicode BLOBに変換するにはで作成された utf16_output_valid.txt Uncode BLOB を使用して説明します。このトピックのために新しいプロジェクトを作 成すると、新しいプロジェクトの<My Documents>\Magic\projects\ フォルダにutf16_output_valid.txtファ イルをコピーしてください。
UTF-8の内容を含むバイナリBLOBをUnicode BLOBに変換するにはトピックのプロジェクトが動作しな い場合は、このサンプルで動作するような独自のUnicode BLOBファイルを作成する必要があります。そ してこのファイルを <My Documents>\Magic\projects\<現在のプロジェクト> フォルダに保存してください。
このファイルをutf16_output1.txtと呼びます。
UTF8fromUnicode関数を使用して Unicode BLOBをUTF-8 の内容を持つバイナリBLOB に変換するには:
1. この例で使用する変数を作成するために、フロー変数リポジトリを開いてください。
2. そこで、F.utf8とF.utf16と呼ばれる2つのBLOB変数を作成してください。また、
F.logと呼ばれる論理変数を作成してください。
3. フローデータユーティリティをフローにドラッグしてください。
4. 変換処理を開始するために、File2Blb関数を使用して、ファイルにUnicode BLOBを 読み込む必要があります。[フローデータ構成]ダイアログボックスで、[追加]を クリックしてください。
5. [アクション]カラムで、ドロップダウンリストからUpdateを選択してください。
6. [タイプ]カラムで、Flowを選択してください。
7. [名前]カラムで、以前に作成した F.utf16 BLOB変数を選択してください。
8. [エンコーディング]カラムで、Unicodeを選択してください。
9. [更新式]カラムで、 をクリックして式エディタを開きます。
10. 式エディタで、以下の式(以下のイメージに示するような)を入力してください、次に
[OK]をクリックしてください。
File2Blb (EnvVal ('currentprojectdir')&'utf16_output1.txt')
次のステージは、UTF8fromUnicode関数を使用して、utf16_output1.txtファイルをUTF-8 BLOB変数に 変換することです。
1. [フローデータ構成]ダイアログボックスで、[追加]をクリックしてください。
2. [アクション]カラムで、ドロップダウンリストからUpdateを選択してください。
3. [タイプ]カラムで、Flowを選択してください。
4. [名前]カラムで、以前に作成したF.utf8 BLOB変数を選択してください。
5. [エンコーディング]カラムで、Binaryを選択してください。
6. [更新式]カラムで、 をクリックして式エディタを開きます。
7. 式エディタで、以下の式(以下のイメージに示するような)を入力してください、次に
[OK]をクリックしてください。
UTF8fromUnicode ( F.utf16 )
次に、ファイルシステムにUTF-8 BLOB変数を書き込むj必要があります。
1. [フローデータ構成]ダイアログボックスで、[追加]をクリックしてください。
2. [アクション]カラムで、ドロップダウンリストからUpdateを選択してください。
3. [タイプ]カラムで、Flowを選択してください。
4. [名前]カラムで、以前に作成したF.log 論理変数を選択してください。
5. [エンコーディング]カラムで、Binaryを選択してください。
6. [更新式]カラムで、 をクリックして式エディタを開きます。
7. 式エディタで、以下の式(以下のイメージに示するような)を入力してください、次に
[OK]をクリックしてください。
Blb2File ( F.utf8 , EnvVal('currentprojectdir') &'utf8_output.txt')
次に、ステップ6(上記)で定義した utf8_output.txtファイルに何が作成されるかを確認するために、プロジ ェクトを実行してください。
1. [フローデータ構成]ダイアログボックスを閉じるために、[OK]をクリックしてく ださい。
2. プロジェクトをビルドしください。
3. Magic xpiモニタを開き、プロジェクトを開始します。
4. <My Documents>\Magic\projects\<現 在 の プ ロ ジェ ク ト>フォルダ を開いてく ださい 。
utf8_output.txtファイルが作成されていることを確認できます。
utf8_output.txtファイルを開くと、その内容はUTF-8で正しくエンコードされます。バイナリエディタを使 用して内容をチェックすると、ファイルにBOMが含まれていないことが確認できます。
次のステージは、BOMをBLOB変数にに追加する方法についてを説明します。
1. [フローデータ構成]ダイアログボックスで、[追加]をクリックしてください。
2. [アクション]カラムで、ドロップダウンリストからUpdateを選択してください。
3. [タイプ]カラムで、Flowを選択してください。
4. [名前]カラムで、以前に作成したF.utf8 BLOB変数を選択してください。
5. [エンコーディング]カラムで、Binaryを選択してください。
6. [更新式]カラムで、 をクリックして式エディタを開きます。
7. 式エディタで、以下の式(以下のイメージに示するような)を入力してください、次に
[OK]をクリックしてください。
BlobAddBOM ( F.utf8 ,1)
8. テーブルの3行目までにこの新規エントリを移動させるために、[フローデータ構 成]ダイアログボックスの右側の上カーソルキーを使用してください。
9. 既存のutf8_output.txtファイルを<My Documents>\Magic\projects\<現在のプロジェ クト>フォルダから削除してください。
さて、utf8_output.txtファイルで何が作成されるかを確認するために、再びプロジェクトを実行してください。
1. [フローデータ構成]ダイアログボックスを閉じるために、[OK]をクリックしてく ださい。
2. プロジェクトをビルドしください。
3. Magic xpiモニタを開き、プロジェクトを開始します。
4. <My Documents>\Magic\projects\<現 在 の プ ロ ジェ ク ト>フォルダ を開いてく ださい 。 utf8_output.txt ファイルが作成されていることを確認できます。
utf8_output.txt ファイルを開くと、その内容がUTF-8で正しくエンコードされることが確認できるはずです。
それだけでなく、バイナリエディタを使用して、内容をチェックするとファイルにBOMが含まれていること が確認できます。
関連トピック:
UTF-8の内容を含むバイナリBLOBをUnicode BLOBに変換するには
エラー処理
エラー処理
以下のトピックは、Magic xpiの中のエラー処理について扱います。