[Squeak-ja: 3976] 日本語 st のインストールの謎 (Squeak3.9.1-final-7075J)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

[Squeak-ja: 3976] 日本語 st のインストールの謎 (Squeak3.9.1-final-7075J)

Kouji takahashi
 高橋@池袋です。

 梅澤さんの最新日本語版Squeak3.9.1-final-7075Jで
日本語を含む特定の stファイルが「インストール」できませんでした。
 問題は解決済みですが既知の現象でしょうか?

-----症状

 stファイルはSqueakNihongo6.1 のブラウザでカテゴリをfileOut
したもの。
 class名、method名、変数名などは全て ASCII。代入は _

 Squeak3.9.1-final-7075Jの fileListで 「インストール」すると
途中でSyntax Error
<<<This string contains character (ascii value 154) that
is not normally used in code>>>

 問題の部分は Dictionaryの初期化を行っている部分。
    dic at: $年 put: -4;
 stファイル中、最初の日本語。年の部分が文字化け。


-----対処法

 ファイルリストで stファイルを選択
 文字コードの変更 utf-8指定
 ファイルの内容表示を全選択
 contextメニューの「ファイルイン」
 → エラーなく完了


-----謎

 対処法でfileInしたものをSqueak3.9.1-final-7075Jから
fileOutし直した stファイルは問題なく「インストール」可能。

 ×と○のstファイルを比較してもほとんど違いが無いよう。
    class定義の 変数名リスト末尾のspaceの有無ぐらい。

 また、classをfileOutすると 'from Squeak3.9.1 of ...'が先頭に
 付きますが カテゴリのfileOutには付かないようです。



追伸
 梅澤さん、ありがとうございます。FileManも使わせていただきます。


ではでは


Reply | Threaded
Open this post in threaded view
|

[Squeak-ja: 3977] Re: 日本語 st のインストールの謎 (Squeak3.9.1-final-7075J)

Yoshiki Ohshima-2
>  対処法でfileInしたものをSqueak3.9.1-final-7075Jから
> fileOutし直した stファイルは問題なく「インストール」可能。
>
>  ×と○のstファイルを比較してもほとんど違いが無いよう。
>     class定義の 変数名リスト末尾のspaceの有無ぐらい。

  ファイルの頭の3バイトが、Byte Ordr Markと呼ばれるUTF-8を表すためのバ
イト列になって出てきていると思います。たとえば、

  (FileStream readOnlyFileNamed: 'foo.cs') binary next: 3.

という式をそれらのファイルで実行すると、返ってくる結果が違うはずです。

-- Yoshiki