|
2006-07-28-08 文字化け(std_cmの利用法の間違い)
著者: GLOBALBASE PROJECT ※
状態
初期報告:bugs / エージェント cosmos / バージョン ver.B.b10 / OS MacOSX
作業状況:報告受理段階>>観測>>対応中>>解決
報告の影響範囲:
- 対象エージェント: cosmos
- OS:all
- 解決が反映されたバージョン: ver.B.b16
初期報告 (日時2006-06-13)
cosmosにおいて、std_cmをsjis以外にすると、全体的にユーザインタフェースが文字化けしてしまう。
▲ページトップへ戻る
最終報告 (著者:森 / 日時:2007-06-27)
現時点である程度解決。一応このスレッドは閉じることにする。再び文字化け問題が発見された場合は個別に対応とする。
▲ページトップへ戻る
ワークアラウンド
COSMOSをver.B.b16以降へバージョンアップする。
レポート (著者:関山 / 日時:2006-07-28)
森先生 On 2006/07/06,at 23:15,Hirohisa MORI wrote: > 文字コードの件、結構奥が深いように思いますが。少々確認ですが、 macでは、
> VStaticTextやVButtonに与える表示用の文字コードとファイル 名の文字コードで
> すが、以下のような認識で良いのでしょうか。
>
>
> Mac専用の2バイトコード(上位一バイトが0のときは1バイト コードを意味す
> る)を与える。1バイトコードや2バイトコードがなにを表すかは、 与えるフォ
> ントのもつコード系で決まる。
まあそうですね。上位バイトで見分けるというよりは、現在のOS の言語モードによって解釈が変わるという感じですか。 あと、アプリケーションの言語モードという概念があります。これは、 メニューやU/Iのデフォルトのフォントに反映されます。 おまけに、一番手前にあるアプリの言語モードに応じて、Apple メニューの中身の言語も勝手に切り替えたりと行ったこともします。
言語モードは、システム環境設定の言語の優先順位と、アプリが持って いる言語リソースで決まります。 日本語→英語→フランス語……となっていて、アプリが日本語リソース を持っていれば日本語、日本語がなくて英語があれば英語,…といった 具合です。
言語リソースとは、アプリのパッケージを開けて、Contents/Resources/ Japanese.lproj/などのディレクトリです。ディレクトリがあれば、中 身がからであってもその言語のリソースを持っていると見なされます。 また、アプリケーションをFinderで選んで「情報を見る」を選ぶ と、言語リソースのON/OFFを個別に設定することも出来ます(多 分これは中の言語リソースディレクトリをResoucesディレクトリ から別のところへ移動している)。
>
> ファイル名の文字コードはUTF8
そうです。ただし、UTF8といっても、Unicode 3.0.0 ( 3.1.0?)なので注意が必要です。(合字を使って「ぱ」などを表す etc.)
┏┏┏ 関山 友輝
┏┏┌ Tomoki Sekiyama
▲ページトップへ戻る
レポート (著者:中島 / 日時:2006-07-28)
ウィンドウズのファイルを操作する際のコードは、
2バイトunicode文字列を引数とする関数とマルチバイトchar文字列を引数とする関数が、 コンパイルオプション次第で切り替えられます。
さらに、マルチバイトcharの際の文字エンコードは、OSでデフォルトに指定した 言語に依存して決定されたと思います。
日本語の場合は、Shift_JISの拡張領域にウィンドウズ機種依存文字を追加した Windows-31J ( =CP932)です。 おそらく、get_default_cmでは、現在OSで選択されている言語を調べて、それに 対応したcmを返す、というのが完全な実装かと思いますが、 海外の言語の際にどの文字エンコードが対応付けされているのかは良く知りませ ん。
OS内部では、全てunicodeに変換されて処理されています。 (現在の言語のデフォルトのエンコードchar文字列からユニコードwchar_t文字 列に変換するシステムコールが有ります)
>>ウィンドウズのファイル名はコードは何なのでしょうか。日本語環境以外の場合は
>>どう決められるのでしょうか?
>>
>>森 ひろひさ
/***********************
中島 智人
株式会社ゼータ
***********************/
▲ページトップへ戻る
|
|