概要
DSで4バイト文字を任意の文字(文字列)へ置き換えるには「変数の変換(Convert Variables)」ステップなどを使用して、対象文字をエンコードし、「テキストの置き換え」を行うことで可能です。
作業手順
「Windows 日本語(windows-31j)」を使用してエンコードする場合
1. 下記の変数を作成する。
変数名 | 変数の型 | 初期値 |
テキスト | Short Text型 | ■@𠀋𡈽𣝣𦹀 |
バイナリ | Binary型 |
※"■" および "@" は4バイト文字ではありません。
2. 「変数の変換(Convert Variables)」ステップを追加する。
3. 「アクション」タブの「変換」項目 >「+」ボタンをクリックする。
4.「設定:変換」ダイアログの「開始」項目にShort Text型変数を設定する。
5.「終了」項目にBinary型変数を設定する。
6.「コンバータ」項目の「+」ボタンをクリック >「エンコードとデコード」 >「テキストをバイナリに変換」をクリックする。
7. 「設定:テキストをバイナリに変換」ダイアログの「エンコード」項目で「Windows 日本語( windows-31j)」を選択する。
※「テスト出力」項目に出力されている16進数は下記のエンコード結果です。
下記の結果から、4バイト文字は「3F」とエンコードされることが確認できます。
8. 「OK」ボタンをクリックする。
9. 「設定:変換」ダイアログの「OK」ボタンをクリックする。
10. 「アクション」タブの「変換」項目 >「+」ボタンをクリックする。
11. 「設定:変換」ダイアログの「開始」項目にBinary型変数を設定する。
12. 「終了」項目にBinary型変数を設定する。
13. 「コンバータ」項目の「+」ボタンをクリック >「テキストフォーマット」 >「テキストの置き換え」をクリックする。
14. 「設定:テキストの置き換え」ダイアログの「このテキストを検索」項目に「3F」を入力する。
15. 「このテキストに置き換え」項目に「81 A1」を入力する。
※「テスト入力値」、「テスト出力値」が空白の場合があります。
16. 「OK」ボタンをクリックする。
17. 「設定:変換」ダイアログの「OK」ボタンをクリックする。
18.「アクション」タブの「変換」項目 >「+」ボタンをクリックする。
19.「設定:変換」ダイアログの「開始」項目にBinary型変数を設定する。
20.「終了」項目にShort Text型変数を設定する。
21. 「コンバータ」項目の「+」ボタンをクリック >「エンコードとデコード」 >「バイナリをテキストに変換」をクリックする。
22. 「設定:バイナリをテキストに変換」ダイアログの「変数」項目にBinary型変数を設定する。
23. 「エンコード」項目に「Windows 日本語(windows-31j)」を設定する。
24. 「OK」ボタンをクリックする。
25. 「設定:変換」ダイアログの「OK」ボタンをクリックする。
「Unicode(UTF-8)」を使用してエンコードする場合
上記の手順7や手順23で「Unicode(UTF-8)」を指定する場合は、下記のように4バイト文字それぞれでエンコード後の16進数の値が変わってきます。
文字 | 16進数 |
■ | E2 96 A0 |
@ | 40 |
𠀋 | F0 A0 80 8B |
𡈽 | F0 A1 88 BD |
𣝣 | F0 A3 9D A3 |
𦹀 | F0 A6 B9 80 |
「Unicode(UTF-8)」を使用する場合は、上記の手順13~15を以下のように変更してください。
13. 「コンバータ」項目の「+」ボタンをクリック >「テキストフォーマット」 >「パターンを置き換え」をクリックする。
14. 「設定:パターンを置き換え」ダイアログの「パターン」項目に正規表現で「F0\s..\s..\s..」と入力する。
15. 「エクスプレッションを置き換え」項目に「”E2 96 A0”」を入力する。
参考
・DSにてパターンで文字を抽出する方法
・DSでパターンに複数条件を指定する方法
・変数操作などを行う際の「パターン」で使用する正規表現
・DSで変数内の特定の文字を除去する方法
・DSで抽出した数値の桁数を変更(0埋め)する方法を教えてください
・DSで日付から曜日を取得する方法を教えてください。
区分 | 確認Ver |
逆引き | 10.4.0.4 |