• 検索結果がありません。

次のステージは、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.utf8F.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の中のエラー処理について扱います。

ドキュメント内 Magic xpiスキルアップセンター Mastering Magic xpi (ページ 136-164)

関連したドキュメント