@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

C#でのフランス語の文字化け

1
投稿者投稿内容
会議室デビュー日: 2005/03/05
投稿数: 3
投稿日時: 2005-03-05 17:33
こんにちは梅と申します。

VisualC#で開発したローカライズしたアプリケーションでフランス語、ドイツ語、イタリア語を扱っています。
翻訳をイタリアで行った.rexを日本で、ビルドしています。
VisualC#上でアクセント文字が文字化けしており、ビルド後、フランス、ドイツ、イタリアのWindows上でアプリケーションを実行したところ、こちらでも文字化けしています。

VC6.0のアプリケーションのリソースもイタリアで翻訳したものを日本でビルドしていますが、こちらは、VCでは文字化けしていますが、フランス、ドイツ、イタリアのWindows上で実行しても文字化けしません。

フォントは、MS UI Gothic, Times New Roman, Tahoma, MS Reference Sans Serifを試しましたが、どれも文字化けしました。
ちなみに、VCでは、Sans Serifを使用しました。

C#のアプリケーションを欧州のwindows上で文字化けしないようにするにはどうしたらいいのでしょうか?
どなたかお教えください。
宜しくお願いします。
Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2005-03-05 22:23
試しにVS上でアセンブリリソースファイルを新規に追加し、
適宜アクセント付き文字を含む文字列をデータに追加して
フォームのテキストにリソースから読み込んだ文字列を設定してみましたが全く問題ありません。
// WindowsXP SP2、OS設定の言語は日本語の環境です。

一番考えられるのは、.resxファイルを保存する際に、UTF-8/UTF-16以外のエンコーディングを使ってしまった可能性です。
.resx(またはresgen.exeに渡す.txt)ファイルのエンコーディングは通常UTF-8またはUTF-16にしなければなりません。
.resxファイルの場合、冒頭のXML宣言でのencoding属性で任意のエンコーディングを指定することもできるようですが。
会議室デビュー日: 2005/03/05
投稿数: 3
投稿日時: 2005-03-10 10:08
梅です。
返信が遅くなって申し訳ありませんでした。

日本語の環境で打ち直せば、文字化けしないのは分かっていたのですが、
今後、翻訳されてきたリソースをわざわざ打ち直すのは文字数が増えるほど、
非効率的になるので、送られてきたリソースをできるだけいじらずにそのまま使いたいと
思っています。

お教えくださった。.resxファイルの、encoding属性をISO-8859-1に変更したところ、
一部の文字化けが直りました。
まだ、文字化けが残っている部分があるので、適切なencoding属性を見つけ出そうと思います。

つきましては、アクセント文字の表示に適したencoding属性をご存知の方がおられましたら、
お教えください。
宜しくお願い申し上げます。
Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2005-03-10 10:33
いわゆる「外字」を含まないのならば、UTF-8/UTF-16を使用するのがベストだと思います。
相手先にUTF-8/UTF-16で保存してもらえるならそれに越した事はないんですがね。
//Win2000やWinXPならOS付属のメモ帳でも保存時に文字コードを指定できます。

今あるテキストに対してその文字コードを調べるのは少々骨でしょう。
フランス・ドイツ・イタリア語ならばISO-8859-1でカバーできるでしょうし、デフォルトの言語設定のはずなんですが。
http://www.bb-brain.co.jp/lecture/20040614.html
ここにISO-8859系の対応する言語が載ってますね。
他にISO-8859-1のEU対応バージョン・ISO-8859-15などもあってなかなか混沌としているようです。
いずれにせよ相手先に聞くのが一番手っ取り早いでしょうが……。
会議室デビュー日: 2005/03/05
投稿数: 3
投稿日時: 2005-03-10 18:56
梅です。
ご返答ありがとうございます。

イタリアのOS上で、.resxのencodingをISO-8859-1に変更すると
文字化けが直りました。

そもそも文字化けした原因が、翻訳先では.resxファイルをVisual Studio .NETではなく、
別のエディターを使って編集したせいでファイルがおかしくなったようです。

今後は、翻訳に使用するエディターを指定することで、このような問題をなくしたいとおもいます。
ご協力ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)