バックスペース(U+0008)が含まれたプロジェクトはScratch 3.0で不具合が出ます

Scratch 2.0の時は普通に動いていたプログラムをScratch 3.0表示すると、スクリプト(ブロック)が消えてしまう現象が起こりました

バックスペースが含まれたプロジェクトはScratch 3.0で不具合が出る

Scratch 2.0の時はこんな感じ。このスクリプトがScratch 3.0では消えてしまいました・・・

バックスペースが含まれたプロジェクトはScratch 3.0で不具合が出る

調べてみたら原因はバックスペース(0x08/U+0008)。バックスペースに関しては、以前にも記事を書きました

【Scratch】Macで日本語入力すると不可視文字が入力される場合がある
Macでプロジェクトを作成して、Windowsを使っている子どもたちにリミックスしてもらったんですが、Macでは表示されていない文字がWindowsで表示されているのを確認しました Windows 7で見るとおかしな文字が表示されています。...

Scratch 2.0の時は文字化けで済んでいたのですが、バックスペースが含まれたプロジェクトをScratch 3.0の環境で開くと、スクリプトが全く表示されない状態になります

解決方法

スクリプトが見えない状態では修正できないので、一旦プロジェクトを自分のパソコンにダウンロードします

バックスペースが含まれたプロジェクトはScratch 3.0で不具合が出る

ダウンロードされたプロジェクトの拡張子をzipに変更して展開します。するとプロジェクト名のフォルダができるので、その中の「project.json」というファイルをテキストエディタで開きます

この\bってのが原因となるバックスペース。これを全部取り除きます。空文字に全置換するのが手っ取り早いです

バックスペースが含まれたプロジェクトはScratch 3.0で不具合が出る

で、ファイルを保存して、先ほどとは逆の作業。今度はフォルダを丸ごとzipで圧縮して、拡張子をzipからsb3に変更します。これをScratch 3.0で読み込みます

バックスペースが含まれたプロジェクトはScratch 3.0で不具合が出る

無事ブロックが復活しました!

バックスペースが含まれたプロジェクトはScratch 3.0で不具合が出る

バックスペースは厄介ですね

Scratch 3.0に対応した書籍です[PR]

タイトルとURLをコピーしました