DJcode


DJcode

日本語文字コード変換プログラムです。以下の文字コード変換ができます。

  • utf8<->euc
  • sjis<->euc

ライセンス

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コード!!"

char[] utf8_euc(char[] str)

文字コードをutf8からeucに変換します。

char[] euc_utf8(char[] str)

文字コードをeucからutf8に変換します。


char[] sjis_euc(char[] str)

文字コードをsjisからeucに変換します。

char[] euc_sjis(char[] str)

文字コードをeucからsjisに変換します。

char[] sjis_utf8(char[] str)

文字コードをsjisからutf8に変換します。

char[] utf8_sjis(char[] str)

文字コードをutf8からsjisに変換します。

ファイル

filejcode.d


参考サイト

文字コード自動判定バージョン by ahiru

ウェブ上で使う場合は、普通送られてくる文字コードが分からないので、変換元の文章の文字コードを自動判別して変換するバージョンを用意しました。

Download

Sample

文字コードは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を指定すると、自動判別します。

public char[] JcodeConvert?(char[] str, char[] from, char[] to)

fromとtoには、

  • EUC-JP
    • e, euc, euc-jp
  • Shift_JIS
    • s, sjis, shift_jis
  • UTF-8
    • u, utf8, utf-8

が指定できます(大文字小文字問わず)。fromにautoを指定した場合、文字コードを自動判別します。


dmd1.0暫定対応バージョン by haru-s

ahiruさんの文字コード自動判定バージョンをベースに,

  • キャスト表記の変更
  • 配列がポインタに暗黙変換されなくなった

に対処してみました.

Download

dmd2.001暫定対応バージョン by haru-s

dmd1.0暫定対応バージョンをベースに,

  • 文字列周りのconst/invariantの変更

に対処してみました.

Download

dmd2.041暫定対応バージョン by 462

haru-s氏のdmd2.001暫定対応バージョンを、dmd2.041でコンパイルできるように修正しました。 動作テストはあまりしてないので、バグがあるかもしれないです。


Download

dmd2.052暫定対応バージョン by u_ma

462氏のdmd2.041暫定対応バージョンを、dmd2.052でコンパイルできるように修正しました。
2.050暫定バージョンでsjis=>utf8変換時に落ちる不具合を修正。
また、-m64でコンパイルが通るように修正。

Download

*MenuBar

人気の10件

  • counter: 16380
  • today: 1
  • yesterday: 0
  • online: 1