事象
DAステップ名やApplication値、Component値など、DAステップ内で特定の文字を入力した状態でロボットファイルを保存し、再度開こうとした際に、エラーが発生してロボットファイルを開くことができなくなります。
エラーメッセージ
日本語
ファイルを開けませんでした。Error parsing robot file: 文字参照 "&#
英語
Could not open file. Error parsing robot file: Character reference "&#
発生条件
現在確認できている限りでは以下の文字が含まれている場合に発生します。
・Unicode(UTF-16)のサロゲートペアの範囲(0x10000以降)の文字がDAステップ内に含まれている場合
<参考外部サイト>サロゲートペア入門
例
DAエディタ上でモアイ像の絵文字(unicode 0x1F5FF)を入力
ロボットファイルを保存し、閉じる
再度ロボットファイルを開こうとするとエラーが発生し、ファイルを開くことができなくなる
対処方法
・Unicodeのサロゲートペアの範囲(0x10000以降)の文字を使用しない
もし、事象が発生し、DS上でロボットを開くことができなくなった場合、ロボットファイルをテキストエディタで開き、該当箇所を修正する必要があります。
※基本的にロボットファイルを直接修正することはサポート対象外の操作になるため、
本不具合に関連する修正箇所以外は編集しないでください。
修正手順
Unicode 0x1F5FF(128511)の文字が含まれている場合を例に手順を説明します。
①ロボットファイルのバックアップを作成する
修正箇所を誤った際等にも復元できるよう、作業前に必ずバックアップを作成してください。
②入力したUnicode 0x10000以降の文字をサロゲートペアの値(10進数)に変換する
<参考外部サイト>
サロゲートペア入門
サロゲートペア変換ツール
Unicode: 0x1F5FFをサロゲートペアに変換
上位サロゲート(0xD800~0xDBFFの値):0xD83(55357)
下位サロゲート(0xDC00~0xDFFFの値):0xDDFF(56831)
③HTML entity表記にするため、10進数表記の上位サロゲートと下位サロゲートにそれぞれ、 "&#" と ";" を付与する
上位サロゲート:�
下位サロゲート:�
④上位サロゲートと下位サロゲートをつなぎ合わせる
��
⑤テキストエディタでロボットファイルを開き、④で作成した文字列を検索し、任意の文字列に置換
ロボットファイルをDSから開くことが可能になれば、DAエディタ上で再編集できるため、
"12345"等、一時的に簡易な文字列に変換してください。
〇変換前の文字列
"gizmo":{
"customName": { "string": "TEST��TEST" }
}
〇変換後の文字列
"gizmo":{
"customName": { "string": "TEST12345TEST" }
}
⑥DS上でロボットファイルを開くことができるか確認する
区分 | 発生Ver | 改修ID | 修正Ver |
不具合 | 10.4、10.7 | 1565701 | 11.1.0.4 |