文字コード掲示板


一括購読


No.290投稿日時:2005/05/20(金) 20:43    <親記事>
投稿者:UTF8

SJIS(外字領域)からUTF8へ変換

初めて投稿させて頂きます。

外字を含むSJISをUTF-8へのコード変換で悩んでいます。
ご指導のほど宜しくお願い致します。

OS:HP-UX11i

検証状況:
iconvの利用を想定し、以下の検討を行いました。
1.Windowsクライアントにて外字を作成
 外字A:SJIS:0xf040
2.上記外字を含むSJISのファイルを作成しHPへFTPでUP
3.iconvを利用して変換 ⇒外字のコード変換失敗(EFBFBD)
 iconvの変換テーブルは以下を利用
 >sjis0201 utf8
 >sjisMS utf8
 >sjis utf8
本来であれば、EE8080へ変換されるべきではと理解しています。
※utf8はbom無しを想定

hpにはcp932の変換テーブルが良くわかりませんが
sjisMS(jis0201)が対応しているかと想定するも、
外字領域(sjis)のマッピングが無いため、一律EFBFBDになる?
と想定しています。

なにか良いアイディアはないでしょうか?
アドバイスのほど宜しくお願いします。


No.291投稿日時:2005/05/21(土) 12:07    <↑親記事:No.290>
投稿者:森山 将之

Re: SJIS(外字領域)からUTF8へ変換

HP-UX 11i を使える環境にはありませんので、実際のところどうなっているのかわかりませんが、次のページによると、sjisMS を使えばよさそうに思えます。

HP-UX 11iバージョン1.6リリースノート > 第 9章 国際化機能
日本ベンダ協議会(JVC) iconvコンバータ
http://docs.hp.com/ja/5187-0702/ch09s05.html

もしも sjisMS と utf8 との間でユーザー定義文字が変換できないのであれば、HP に問い合わせをした方がよろしいかと思います。

参考

OSF 日本ベンダ協議会 (OSF/JVC) 推奨
日本語 EUC ・シフト JIS 間コード変換仕様とコード系実態調査
http://www.opengroup.or.jp/jvc/cde/sjis-euc.html

コード変換規則
http://www.opengroup.or.jp/jvc/cde/appendix.html


No.292投稿日時:2005/05/23(月) 10:36    <↑親記事:No.291>
投稿者:UTF8

回答ありがとうございます。 ...

回答ありがとうございます。

HPに確認したいと思います。

参考情報ありがとうございました。
ベンダー依存ですが、情報が分かったら、
このBBSにUPしていきたいと思います。


No.293投稿日時:2005/05/23(月) 13:25    <↑親記事:No.292>
投稿者:森山 将之

結果を教えていただけると助かりますので、よろしくお願いいたします。


No.294投稿日時:2005/05/25(水) 10:32    <↑親記事:No.293>
投稿者:UTF8

森山様 対応方法が大体見えま...

森山様

対応方法が大体見えました。
HP-UX11iB11.11では
iconvの変換テーブルでsjisp=ucs2がサポート
されていました。
この変換テーブルで、sjisの外字領域がucs2へ
変換できました。
こちらの要件としてはUTF-8ですので
更にucs2->utf8へ変換することでUTF8へ変換できました。

HPのiconvではsjisの外字領域を一度にutf8へ変換は
難しいとの結論になりした。

私はこの分野は素人で、まだ理解できていない部分が
ありますが、勉強になりました。
結構、奥が深い領域ですね。


No.295投稿日時:2005/05/25(水) 18:25    <↑親記事:No.294>
投稿者:森山 将之

結果のご報告ありがとうございます。

UTF-8 に変換したものを再度 Windows で変換する必要がある場合は、次の表にある Unicode値に変換されている必要がありますのでご注意ください。

文字 / SJISコード値 / Unicodeコード値 (UTF-8)
― / 0x815C / U+2015 (E2 80 95)
〜 / 0x8160 / U+FF5E (EF BD 9E)
‖ / 0x8161 / U+2225 (E2 88 A5)
− / 0x817C / U+FF0D (EF BC 8D)
¢ / 0x8191 / U+FFE0 (EF BF A0)
£ / 0x8192 / U+FFE1 (EF BF A1)
¬ / 0x81CA / U+FFE2 (EF BF A2)

上記のような変換を期待する場合は、libiconv に次のパッチを適用してメイクした iconv コマンドを使用すると良いでしょう。

http://www2d.biglobe.ne.jp/~msyk/software/libiconv-1.9.2-cp932-patch.html



No.290投稿日時:2005/05/20(金) 20:43    <親記事>
投稿者:UTF8

SJIS(外字領域)からUTF8へ変換

初めて投稿させて頂きます。

外字を含むSJISをUTF-8へのコード変換で悩んでいます。
ご指導のほど宜しくお願い致します。

OS:HP-UX11i

検証状況:
iconvの利用を想定し、以下の検討を行いました。
1.Windowsクライアントにて外字を作成
 外字A:SJIS:0xf040
2.上記外字を含むSJISのファイルを作成しHPへFTPでUP
3.iconvを利用して変換 ⇒外字のコード変換失敗(EFBFBD)
 iconvの変換テーブルは以下を利用
 >sjis0201 utf8
 >sjisMS utf8
 >sjis utf8
本来であれば、EE8080へ変換されるべきではと理解しています。
※utf8はbom無しを想定

hpにはcp932の変換テーブルが良くわかりませんが
sjisMS(jis0201)が対応しているかと想定するも、
外字領域(sjis)のマッピングが無いため、一律EFBFBDになる?
と想定しています。

なにか良いアイディアはないでしょうか?
アドバイスのほど宜しくお願いします。


No.291投稿日時:2005/05/21(土) 12:07    <↑親記事:No.290>
投稿者:森山 将之

Re: SJIS(外字領域)からUTF8へ変換

HP-UX 11i を使える環境にはありませんので、実際のところどうなっているのかわかりませんが、次のページによると、sjisMS を使えばよさそうに思えます。

HP-UX 11iバージョン1.6リリースノート > 第 9章 国際化機能
日本ベンダ協議会(JVC) iconvコンバータ
http://docs.hp.com/ja/5187-0702/ch09s05.html

もしも sjisMS と utf8 との間でユーザー定義文字が変換できないのであれば、HP に問い合わせをした方がよろしいかと思います。

参考

OSF 日本ベンダ協議会 (OSF/JVC) 推奨
日本語 EUC ・シフト JIS 間コード変換仕様とコード系実態調査
http://www.opengroup.or.jp/jvc/cde/sjis-euc.html

コード変換規則
http://www.opengroup.or.jp/jvc/cde/appendix.html


No.292投稿日時:2005/05/23(月) 10:36    <↑親記事:No.291>
投稿者:UTF8

回答ありがとうございます。 ...

回答ありがとうございます。

HPに確認したいと思います。

参考情報ありがとうございました。
ベンダー依存ですが、情報が分かったら、
このBBSにUPしていきたいと思います。


No.293投稿日時:2005/05/23(月) 13:25    <↑親記事:No.292>
投稿者:森山 将之

結果を教えていただけると助かりますので、よろしくお願いいたします。


No.294投稿日時:2005/05/25(水) 10:32    <↑親記事:No.293>
投稿者:UTF8

森山様 対応方法が大体見えま...

森山様

対応方法が大体見えました。
HP-UX11iB11.11では
iconvの変換テーブルでsjisp=ucs2がサポート
されていました。
この変換テーブルで、sjisの外字領域がucs2へ
変換できました。
こちらの要件としてはUTF-8ですので
更にucs2->utf8へ変換することでUTF8へ変換できました。

HPのiconvではsjisの外字領域を一度にutf8へ変換は
難しいとの結論になりした。

私はこの分野は素人で、まだ理解できていない部分が
ありますが、勉強になりました。
結構、奥が深い領域ですね。


No.295投稿日時:2005/05/25(水) 18:25    <↑親記事:No.294>
投稿者:森山 将之

結果のご報告ありがとうございます。

UTF-8 に変換したものを再度 Windows で変換する必要がある場合は、次の表にある Unicode値に変換されている必要がありますのでご注意ください。

文字 / SJISコード値 / Unicodeコード値 (UTF-8)
― / 0x815C / U+2015 (E2 80 95)
〜 / 0x8160 / U+FF5E (EF BD 9E)
‖ / 0x8161 / U+2225 (E2 88 A5)
− / 0x817C / U+FF0D (EF BC 8D)
¢ / 0x8191 / U+FFE0 (EF BF A0)
£ / 0x8192 / U+FFE1 (EF BF A1)
¬ / 0x81CA / U+FFE2 (EF BF A2)

上記のような変換を期待する場合は、libiconv に次のパッチを適用してメイクした iconv コマンドを使用すると良いでしょう。

http://www2d.biglobe.ne.jp/~msyk/software/libiconv-1.9.2-cp932-patch.html


Script : Sylpheed 1.24
Modified by MORIYAMA Masayuki