Automation Anywhere A360でQRコードを生成してみる その2 ~ 文字化け対策


はじめに

【前回の記事】
Automation Anywhere A360でQRコードを生成してみる - Qiita

現在のバージョンのQR Code Generatorは日本語未対応

前回はAutomation Anywhere Automation 360によるQRコード生成をご紹介しましたが、
実は現在のバージョンのQR Code Generatorアクションは、日本語などの文字コードに未対応となっています。
そのため、日本語を含む文字列をQRコード化し、読み込もうとすると以下の写真のように文字化けしてしまいます。

解決方法

このQRコード生成パッケージ自体を日本語化してくれたら話が早いんですが、
今回はこのままでも何とかする方法を考えてみます。
色々方法はあると思いますが、今回は文字列をURLエンコードして、QRコード生成を生成し、
読み取り後に複合し、日本語を含む文字列に戻す方法を取ろうと思います。
(同パッケージの日本語対応依頼も出してはいますが、対応時期は不明です。)

処理の流れ

  • 日本語を含む文字列を生成
  • JavaScriptで文字列をURLエンコードする
  • URLエンコードした文字列を元にQRコードを生成する
  • QRコードを読み取る
  • 読み取った文字列をJavaScriptでデコード(復号)する
  • 終了

実際に組んでみる

ということで、実際にやってみましょう。

JavaScript部分

エンコードに使うJavaScriptコード
function getEncodedText(a){
  return encodeURI(a);
}
デコードに使うJavaScriptコード
function getDecodedText(a){
  return decodeURI(a);
}

大枠はこんな感じ

Stepの中を展開するとこんな感じになってます

各アクションの設定値

※デコードする部分もほぼエンコード時と設定内容は一緒で、呼び出す関数名を変えるくらいです。

結果


上記をQRコード化し、それを読み取り、デコードした結果がこちら。

まとめ

ということで、日本語対応していないQRコード生成用アクションで日本語を扱ってしまうことが出来ました。
気を付けないといけないのは、QRコードで扱える最大文字数ですが、一般的な用途であれば大丈夫なんじゃないかと思っています。

参考ページ、記事

URLエンコードとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
URLエンコードについておさらいしてみた - Qiita