全ての半角文字、全角文字に対応
半角文字、全角文字をUnicode(UTF-8)文字コードにした際に、変換のパターン(「41」⇒「efbca1」等)が一つではないため、どの文字が対象の場合でも対応可能なように全ての変換パターンを関数「Replace」で指定します。
(例)数字:半角文字⇒全角文字に変換
${HexDecode(Replace(HexEncode('[半角数字]'), '3([0-9])', 'efbc9$1'))}
※[半角数字]:任意の半角数字の文字列
また、英大文字の場合、Unicode(UTF-8)文字コードにした際の文字の並びによっては、正常に変換ができない場合があります。
(正常に変換できないパターンの例)
「STUDENT」 ⇒ Unicode(UTF-8)文字コード「53545544454e54」
〇正しい置換対象:535455
44454e54
×誤った置換対象:535
455
44454e54
そのため、以下のように変換するように指定します。
(例)英大文字:半角文字⇒全角文字に変換
${HexDecode(Replace(Replace(HexEncode(Replace('[英大文字]', 'T', 'T')), '(?<![b-f]{4}[89ab])4([0-9a-z])', 'efbca$1'), '(?<![b-f]{4}[89ab])5([0-9a-z])', 'efbcb$1'))}
※[英大文字]:任意の英大文字の文字列
英小文字の場合も同様に、Unicode(UTF-8)文字コードにした際の文字の並びによっては、正常に変換ができない場合があるため、以下のように変換するように指定します。
(例)英小文字:半角文字⇒全角文字に変換
${HexDecode(Replace(Replace(HexEncode(Replace('[英小文字]', 'v', 'v')), '(?<![b-f]{4}[89ab])6([0-9a-z])', 'efbd8$1'), '(?<![b-f]{4}[89ab])7([0-9a-z])', 'efbd9$1'))}
※[英小文字]:任意の英小文字の文字列