No.296 | 投稿日時: | 2005/05/30(月) 14:46 <親記事> |
投稿者: | サミ |
お疲れ様です。
文字コードの変換について質問したいのですが。
XMLファイルをC++アプリケーションで、デコードさせてる処理で
UTF-8で送られて来たデータをEUC-JPに変換させたいのですが、
変換出来ない文字一覧を探しています。
たまに変換出来ない文字があるのですが、
出来ない文字一覧が乗ってるページ等情報ありましたら、
教えて頂け無いでしょうか。
OSはfreeBSDになります。
以上ですが、よろしくお願い致します
No.297 | 投稿日時: | 2005/05/31(火) 02:33 <↑親記事:No.296> |
投稿者: | 森山 将之 |
Unicode と EUC-JP の変換にまつわる諸々の問題について、情報を整理して分りやすく、まとめられているページは無いと思います。
# まとめておかないと、とは思っているのですが…
まずは、もう少し詳しい状況をお教えください。
C++での文字コード変換は、何を使っているのでしょうか?
・iconv() でしょうか?
・それとも他のものを使っているのでしょうか?
EUC-JP に変換できない文字との事ですが、
・機種依存文字は含まない純粋な EUC-JP の事 (IANA の定義に従う) を言っているでしょうか?
・それとも、Windowsの機種依存文字も含まれているでしょうか?
あと、UTF-8 に関しては、
・Windows の UTF-8 でしょうか?
・それとも、JIS準拠のJIS-UCS マッピングを用いて UTF-8 に変換したものでしょうか?
・こられの両方が混在する可能性があるでしょうか?
何のことか、わからなければ、具体的にどの文字が文字化けしているのか、一部でもいいですので、お教えください。
No.300 | 投稿日時: | 2005/05/31(火) 14:40 <↑親記事:No.297> |
投稿者: | サミ |
返信ありがとう御座います。
言葉足らずの説明ご迷惑おかけしました。
以下インラインでコメント致します
>C++での文字コード変換は、何を使っているのでしょうか?
こちらiconvを使用しています。
>EUC-JP に変換できない文字との事ですが、
基本的に機種依存文字を含め、全ての文字になります。
>あと、UTF-8 に関しては、
こちらjavaアプリケーションで生成したXMLファイルですので
JIS→UTF8になると思います。
お忙しい所大変申し訳御座いませんが、よろしくお願い致します、、
No.301 | 投稿日時: | 2005/06/01(水) 09:59 <↑親記事:No.300> |
投稿者: | 森山 将之 |
EUC-JP エンコーディングで機種依存文字を扱うのは困難を伴うので出来れば避けた方がいいです。
機種依存文字対応の EUC-JP は、大きくわけて Windows の EUC-JP である CP51932 と TOG/JVC 策定の eucJP-open (eucJP-ms/eucJP-0201/eucJP-ascii) の 2 種類があります。
OSF 日本ベンダ協議会 (OSF/JVC) 推奨
日本語 EUC ・シフト JIS 間コード変換仕様とコード系実態調査
http://www.opengroup.or.jp/jvc/cde/sjis-euc.html
eucJP-ms/eucJP-0201/eucJP-ascii のコード変換規則
http://www.opengroup.or.jp/jvc/cde/appendix.html
EUC-JP に変換したものを Web ブラウザで表示させるのか、それとも PostgreSQL などのデータベースに格納するのかによって、使い分けが必要になります。
しかし、CP51932、eucJP-open の両方をサポートしているソフトは皆無といっても良い状況ですから、CP51932 を使うべきところに eucJP-open を使ったりすれば機種依存文字の文字化けが発生します。
> こちらjavaアプリケーションで生成したXMLファイルですので
> JIS→UTF8になると思います。
これはどういう事なのでしょうか?
ISO2022JP→UTF-8
SJIS→UTF-8
EUC_JP→UTF-8
MS932→UTF-8
のどれでしょう?
MS932→UTF-8 の場合は、JISの文字について次のページにある『Microsoft CP932との相違』で説明されている文字が iconv() の EUC-JP では変換できません。
JIS-Unicode間の変換表の選択について
http://hp.vector.co.jp/authors/VA010341/unicode/
MS932→UTF-8 で変換されたものを iconv() で EUC-JPエンコーディングに変換するには、eucJP-ms を使用する必要があります。(iconv -l | grep EUCJP-MSで eucJP-ms が使用できるか確認する必要あり)
この場合、機種依存文字は変換可能ですが、Windows の Webブラウザでの EUC-JP は CP51932 で表示しようとしますから、IBM拡張文字が正しく表示できません。eucJP-ms を Windows の Webブラウザで表示させた場合、JIS の文字とNEC特殊文字のみが正しく表示されます。
ちなみに、
ISO2022JP→UTF-8
SJIS→UTF-8
EUC_JP→UTF-8
で変換されたものは、eucJP-ms ではなく EUC-JP で変換する必要があります。
この場合、機種依存文字は変換できません。
No.296 | 投稿日時: | 2005/05/30(月) 14:46 <親記事> |
投稿者: | サミ |
お疲れ様です。
文字コードの変換について質問したいのですが。
XMLファイルをC++アプリケーションで、デコードさせてる処理で
UTF-8で送られて来たデータをEUC-JPに変換させたいのですが、
変換出来ない文字一覧を探しています。
たまに変換出来ない文字があるのですが、
出来ない文字一覧が乗ってるページ等情報ありましたら、
教えて頂け無いでしょうか。
OSはfreeBSDになります。
以上ですが、よろしくお願い致します
No.297 | 投稿日時: | 2005/05/31(火) 02:33 <↑親記事:No.296> |
投稿者: | 森山 将之 |
Unicode と EUC-JP の変換にまつわる諸々の問題について、情報を整理して分りやすく、まとめられているページは無いと思います。
# まとめておかないと、とは思っているのですが…
まずは、もう少し詳しい状況をお教えください。
C++での文字コード変換は、何を使っているのでしょうか?
・iconv() でしょうか?
・それとも他のものを使っているのでしょうか?
EUC-JP に変換できない文字との事ですが、
・機種依存文字は含まない純粋な EUC-JP の事 (IANA の定義に従う) を言っているでしょうか?
・それとも、Windowsの機種依存文字も含まれているでしょうか?
あと、UTF-8 に関しては、
・Windows の UTF-8 でしょうか?
・それとも、JIS準拠のJIS-UCS マッピングを用いて UTF-8 に変換したものでしょうか?
・こられの両方が混在する可能性があるでしょうか?
何のことか、わからなければ、具体的にどの文字が文字化けしているのか、一部でもいいですので、お教えください。
No.300 | 投稿日時: | 2005/05/31(火) 14:40 <↑親記事:No.297> |
投稿者: | サミ |
返信ありがとう御座います。
言葉足らずの説明ご迷惑おかけしました。
以下インラインでコメント致します
>C++での文字コード変換は、何を使っているのでしょうか?
こちらiconvを使用しています。
>EUC-JP に変換できない文字との事ですが、
基本的に機種依存文字を含め、全ての文字になります。
>あと、UTF-8 に関しては、
こちらjavaアプリケーションで生成したXMLファイルですので
JIS→UTF8になると思います。
お忙しい所大変申し訳御座いませんが、よろしくお願い致します、、
No.301 | 投稿日時: | 2005/06/01(水) 09:59 <↑親記事:No.300> |
投稿者: | 森山 将之 |
EUC-JP エンコーディングで機種依存文字を扱うのは困難を伴うので出来れば避けた方がいいです。
機種依存文字対応の EUC-JP は、大きくわけて Windows の EUC-JP である CP51932 と TOG/JVC 策定の eucJP-open (eucJP-ms/eucJP-0201/eucJP-ascii) の 2 種類があります。
OSF 日本ベンダ協議会 (OSF/JVC) 推奨
日本語 EUC ・シフト JIS 間コード変換仕様とコード系実態調査
http://www.opengroup.or.jp/jvc/cde/sjis-euc.html
eucJP-ms/eucJP-0201/eucJP-ascii のコード変換規則
http://www.opengroup.or.jp/jvc/cde/appendix.html
EUC-JP に変換したものを Web ブラウザで表示させるのか、それとも PostgreSQL などのデータベースに格納するのかによって、使い分けが必要になります。
しかし、CP51932、eucJP-open の両方をサポートしているソフトは皆無といっても良い状況ですから、CP51932 を使うべきところに eucJP-open を使ったりすれば機種依存文字の文字化けが発生します。
> こちらjavaアプリケーションで生成したXMLファイルですので
> JIS→UTF8になると思います。
これはどういう事なのでしょうか?
ISO2022JP→UTF-8
SJIS→UTF-8
EUC_JP→UTF-8
MS932→UTF-8
のどれでしょう?
MS932→UTF-8 の場合は、JISの文字について次のページにある『Microsoft CP932との相違』で説明されている文字が iconv() の EUC-JP では変換できません。
JIS-Unicode間の変換表の選択について
http://hp.vector.co.jp/authors/VA010341/unicode/
MS932→UTF-8 で変換されたものを iconv() で EUC-JPエンコーディングに変換するには、eucJP-ms を使用する必要があります。(iconv -l | grep EUCJP-MSで eucJP-ms が使用できるか確認する必要あり)
この場合、機種依存文字は変換可能ですが、Windows の Webブラウザでの EUC-JP は CP51932 で表示しようとしますから、IBM拡張文字が正しく表示できません。eucJP-ms を Windows の Webブラウザで表示させた場合、JIS の文字とNEC特殊文字のみが正しく表示されます。
ちなみに、
ISO2022JP→UTF-8
SJIS→UTF-8
EUC_JP→UTF-8
で変換されたものは、eucJP-ms ではなく EUC-JP で変換する必要があります。
この場合、機種依存文字は変換できません。