日本語文字コード変換プログラムです。以下の文字コード変換ができます。
euc<->utf8変換部は、Jcode-060aをベースにD言語に移植。 euc<->sjis変換部は、Jcode.pmをベースにD言語に移植しました。
import jcode; import std.file; void main() { char[] utf8 = "Jコード!!"; char[] sjis = utf8_sjis(utf8); write("sjis.txt",sjis); char[] euc = sjis_euc(sjis); write("euc.txt",euc); utf8 = euc_utf8(euc); write("utf8.txt",utf8); }
出力
sjis.txtにsjisの文字コードで"Jコード!!"
euc.txtにeucの文字コードで"Jコード!!"
utf8.txtにutf8の文字コードで"Jコード!!"
文字コードをutf8からeucに変換します。
文字コードをeucからutf8に変換します。
文字コードをsjisからeucに変換します。
文字コードをeucからsjisに変換します。
文字コードをsjisからutf8に変換します。
文字コードをutf8からsjisに変換します。
ウェブ上で使う場合は、普通送られてくる文字コードが分からないので、変換元の文章の文字コードを自動判別して変換するバージョンを用意しました。
文字コードはUTF-8で。
import std.file; void main() { char utf8[] = "あいうえおaiueoアイウエオあいうえお"; char euc[] = JcodeConvert(utf8, "utf8", "euc"); write("euc.txt",euc); char sjis[] = JcodeConvert(euc, "euc", "sjis"); write("sjis.txt",sjis); euc = JcodeConvert(sjis, "sjis", "euc"); utf8 = JcodeConvert(euc, "euc", "utf8"); write("utf8.txt",utf8); utf8 = JcodeConvert(euc, "auto", "utf8"); write("utf8_auto.txt",utf8); }
fromにautoを指定すると、自動判別します。
fromとtoには、
が指定できます(大文字小文字問わず)。fromにautoを指定した場合、文字コードを自動判別します。
ahiruさんの文字コード自動判定バージョンをベースに,
に対処してみました.
dmd1.0暫定対応バージョンをベースに,
に対処してみました.
haru-s氏のdmd2.001暫定対応バージョンを、dmd2.041でコンパイルできるように修正しました。 動作テストはあまりしてないので、バグがあるかもしれないです。
462氏のdmd2.041暫定対応バージョンを、dmd2.052でコンパイルできるように修正しました。
2.050暫定バージョンでsjis=>utf8変換時に落ちる不具合を修正。
また、-m64でコンパイルが通るように修正。