投稿者 スレッド: ソースプログラムが文字化けしてしまいます。  (Read 4327 times)

Kitahara

  • ゲスト
ソースプログラムが文字化けしてしまいます。
« 投稿日:: 2015年 2月 03日 , 午後 05:16:48 »
何時も有効に使わせていただいています。
たまに発生するのですが、ソースプログラムの2バイト(漢字)文字の部分が文字化けしてしまいます。
下記は、その3事例です。
解消方法等を教えてください。

(1-①)  ファイル       83 74 83 40 83 43 83 8B     ←ソースプログラム作成時(エディター画面の表示内容)
(1-②)  ファ・Cル      83 74 83 40 81 45 43 83 8B  ←ソースファイルに保存した内容

(2-①)  解析データ     89 F0 90 CD 83 66 81 5B 83 5E     ←ソースプログラム作成時(エディター画面の表示内容)
(2-②)  解・ヘデータ    89 F0 81 45 CD 83 66 81 5B 83 5E  ←ソースファイルに保存した内容

(3-①)  第1行目       91 E6 82 50 8D 73 96 DA     ←ソースプログラム作成時(エディター画面の表示内容)
(3-②)  第・P行目      91 E6 81 45 50 8D 73 96 DA  ←ソースファイルに保存した内容

takeuchi

  • 管理人
  • *****
  • 投稿: 93
Re:ソースプログラムが文字化けしてしまいます。
« Reply #1 投稿日:: 2015年 2月 04日 , 午後 12:10:39 »
こんにちは,

 TBを使用して頂き有難うございます。

> たまに発生するのですが、ソースプログラムの2バイト(漢字)文字の部分が文字化けしてしまいます。

 このことですが,細かい状況が不明なので,正確でないかもしれませんが,あり得ます。
 何らかの際,何らかの不適切文字(コントロール文字など)が紛れ込んだものと思われます。

 不適切文字が何時紛れ込むかは,次が考えられます。
・ペースト時(特に別のファイルからの)
・入力時(TBでの入力作業では余りないと思いますが。)
・内部処理時(保存,読み込み等)

 TBのエディターの漢字の取り扱いにについて説明します。
普通よく使われる漢字コードはShift-JIS(SJIS)ですので,TBのファイルは普通に保存するとSJISで保存
されます。一方TBの内部では,UTF16で処理されていますから,読み込み,保存の際変換を行います。
また,TBのエディターはRichtext エディターですので,文字以外のコントロールコードも受け付けます。

 このような取扱いを行っていますので,文字化けがまれに起き得ます。

 お問い合わせの件ですが,TBでのソース作成でのものと,実際に保存したものが異なるようです。
これは,何らかの不可視文字が混入し,それを排除できず,UTF16からSJISへの変換の際に生じた
ものと推測されます。本来であればこのようなことはない筈ですが,内蔵エディターの弱いところです。

 次期バージョンのエディターではこのあたりの対策も細かく考えたいと思います。

 対策ですが,申し訳ありませんが,保存したものを再確認するしか方法はありません。
もし,常に誤変換が起きる状況が確定できた場合はお知らせください。対応を考えます。

 宜しくお願い致します。

Kitahara

  • ゲスト
Re:ソースプログラムが文字化けしてしまいます。
« Reply #2 投稿日:: 2015年 2月 04日 , 午後 04:32:24 »
 詳細な返信ありがとうございます。

 前回で申し忘れましたが、ソースプログラム内での文字化け文字の出現位置を変えてから
発生個所を再入力すると発生しなくなるため、文字化けが発生した場合は下記の対処策を
取っています。

  ・発生個所より前方にあるコメント行の長さを変える。
   または、命令句と命令句を分離する半角スペースの数を増やす。
   (1文字~数文字の増減で発生しなくなります。)

 また、不適切文字を入力しないよう気を付けてまいります。

 今後も、よろしくお願いいたします

takeuchi

  • 管理人
  • *****
  • 投稿: 93
Re:ソースプログラムが文字化けしてしまいます。
« Reply #3 投稿日:: 2015年 2月 04日 , 午後 10:13:08 »
 返信有難うございました。

 少し状況が分かりました。TB の内蔵エディターのバグと思われます。

 TBのエディターでは,1行ごとにキーワード判定等の内部処理を行います。その際,何かが紛れ込む
かもしれません。IMEが関連する文字の取り扱いは,仕様の詳細が不明のこともあり,難しいです。
【実行」→「プログラム整形」ではその辺りどうでしょうか。

 少し調べてみます。ただ,申し訳ありませんが,修正ができるか不明です。

 実のところ,私自身現在のTBのエディターはかなり不満な部分があります。しかし,それらの修正も
色々な状況から,私の力量では限界があります。
 そこで,それらを含めて,新しい言語でのTB全体の作り直しの挑戦を始めたところです。

 有難うございました。