文字コードの変換ライブラリ

日本語ではシフト JIS, EUC, UTF-8, JIS といったいろんな文字コードが使用されています。 前に、こういった文字コードの読み取って、 プログラム中では Unicode として統一して扱うことが多いと書きました。
今度はこの文字コード変換にどういったものが使われているのかについて記述したいと思います。

Windows


.NET では System.Text.Encoding というクラスがあります。これで、各コードの文字データを Unicode に変換して、 System.String 型に格納します。
ただ、これは文字コードの判別までは行ってくれません。

.NET を使用しない場合は IE が使用しているライブラリ mlang.dll がよく使われていると思います。
また、これは文字コードの判別もできるので、 .NET を使う場合も自動判別が必要な場合はこちらを使用する必要があります。

また、 Windows の日本語環境でよく使われる Shift-JIS(OEM), UTF-8 であれば WIN32API に Unicode との変換関数が用意されています。


Un*x


Un*x 系では GNU の iconv が標準いってもいいかも知れません。
これはライブラリとコマンドラインのツールがあります。
ただ、 iconv は文字コードの判別は行ってくれません。

文字コード判定のライブラリとしては iconv みたいに浸透はしてませんが、libguess というライブラリがあります。


クロスプラットホーム


Qt の場合は 自前で文字コード変換機能を持っています。
これを使って、各文字コードから QString に変換します。
文字コード判別機能は持っていないのですが、 HTML のヘッダや BOM から文字コードを判定するメソッドならあります。

Unicode 用の国際化ライブラリである ICU も各文字コードと Unicode 間の変換が出来ます。
こちらは文字コードの判別機能もあります。

Boostでは正規表現の拡張などで ICU が取り入れられています。
また、 iostream が簡単に作れる boost::iostreams というモジュールには入出力するとき文字コードを変換してくれる code_converter というクラスもあります。

その他には日本語文字コードだけであれば、次のような文字コードの判定と変換ができるライブラリ(ツール)が有名だと思います。

Ruby


Ruby の場合は iconv, nkf のラッパーライブラリと Kconv という判定変換してくれるライブラリが 標準で添付されています
Ruby 1.9 からは独自のエンコーディング変換エンジン(transcode)を搭載して、 言語レベルでエンコーディングの変換ができるようになっています。

関連記事
スポンサーサイト
Prev.    Category    Next 

Facebook コメント


コメント

コメントの投稿

Font & Icon
非公開コメント

このページをシェア
アクセスカウンター
アクセスランキング
[ジャンルランキング]
コンピュータ
43位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
3位
アクセスランキングを見る>>
カレンダー(アーカイブ)
プルダウン 降順 昇順 年別

05月 | 2017年06月 | 07月
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -


はてな新着記事
はてな人気記事
ブロとも申請フォーム
プロフィール

yohshiy

Author:yohshiy
職業プログラマー。
仕事は主に C++ ですが、軽い言語マニアなので、色々使っています。

はてブ:yohshiy のブックマーク
Twitter:@yohshiy

サイト紹介
プログラミング好きのブログです。プログラミング関連の話題や公開ソフトの開発記などを雑多に書いてます。ただ、たまに英語やネット系の話になることも。