DAステップ内で特定の文字を使用している場合にDS上でロボットファイルを開くことができなくなる

フォローする

事象

DAステップ名やApplication値、Component値など、DAステップ内で特定の文字を入力した状態でロボットファイルを保存し、再度開こうとした際に、エラーが発生してロボットファイルを開くことができなくなります。

エラーメッセージ

日本語

ファイルを開けませんでした。Error parsing robot file: 文字参照 "&#

fig1.png

英語

Could not open file. Error parsing robot file: Character reference "&#

fig2.png

発生条件

現在確認できている限りでは以下の文字が含まれている場合に発生します。

・Unicode(UTF-16)のサロゲートペアの範囲(0x10000以降)の文字がDAステップ内に含まれている場合
 <参考外部サイト>サロゲートペア入門


 DAエディタ上でモアイ像の絵文字(unicode 0x1F5FF)を入力
fig3.png

 ロボットファイルを保存し、閉じる
fig4.png

 再度ロボットファイルを開こうとするとエラーが発生し、ファイルを開くことができなくなる
fig5.png

対処方法

・Unicodeのサロゲートペアの範囲(0x10000以降)の文字を使用しない

もし、事象が発生し、DS上でロボットを開くことができなくなった場合、ロボットファイルをテキストエディタで開き、該当箇所を修正する必要があります。
 ※基本的にロボットファイルを直接修正することはサポート対象外の操作になるため、
  本不具合に関連する修正箇所以外は編集しないでください。

修正手順
 Unicode 0x1F5FF(128511)の文字が含まれている場合を例に手順を説明します。
fig6.png

①ロボットファイルのバックアップを作成する
 修正箇所を誤った際等にも復元できるよう、作業前に必ずバックアップを作成してください。

②入力したUnicode 0x10000以降の文字をサロゲートペアの値(10進数)に変換する
  <参考外部サイト>
    サロゲートペア入門
    サロゲートペア変換ツール

 Unicode: 0x1F5FFをサロゲートペアに変換
  上位サロゲート(0xD800~0xDBFFの値):0xD83(55357)
  下位サロゲート(0xDC00~0xDFFFの値):0xDDFF(56831)

③HTML entity表記にするため、10進数表記の上位サロゲートと下位サロゲートにそれぞれ、 "&#" と ";" を付与する

 上位サロゲート:&#55357;
 下位サロゲート:&#56831;

④上位サロゲートと下位サロゲートをつなぎ合わせる

 &#55357;&#56831;

⑤テキストエディタでロボットファイルを開き、④で作成した文字列を検索し、任意の文字列に置換
 ロボットファイルをDSから開くことが可能になれば、DAエディタ上で再編集できるため、
 "12345"等、一時的に簡易な文字列に変換してください。


fig7.png

〇変換前の文字列

              "gizmo":{
                "customName": { "string": "TEST&#55357;&#56831;TEST" }
              }


〇変換後の文字列

              "gizmo":{
                "customName": { "string": "TEST12345TEST" }
              }


⑥DS上でロボットファイルを開くことができるか確認する
fig8.png


区分 発生Ver 改修ID 修正Ver
不具合 10.4、10.7 1565701  

 

 

 

コメント

0件のコメント

記事コメントは受け付けていません。