C 文字列操作 新しいページはコチラ
提供: yonewiki
(→文字列半角文字全角文字変換) |
(→文字列文字コード変換) |
||
2,610行: | 2,610行: | ||
C++/CLIだとEncodingというライブラリを使うことで変換ができますが、C++以下の範囲で扱う場合はIBM社が作成したオープンソースICU(International Components for Unicode)、GNUプロジェクトによって作られLGPLのICONVというライブラリがあります。ほかにも有志によって作られたフリーソフトnkf.dllというライブラリを使う方法もあります。ここではICUを使った方法について記述します。GNUは自由に使うことのできるUnixとしてのOSであるLinuxの開発プロジェクトで、GNU's Not Unixという意味だそうです。そうすると先頭にまたGNUが出てくるから、それは何の意味?ってなるとまたGNUはGNU's Not Unixって略語だよっていう風になる再帰的な略語です。GNUのGの意味は思考を停止しない限り永遠に再帰されます。LGPL(Lesser General Public License)は簡単に表現するとコンパイルするプログラムの配布には関与しないライセンスですが、ライブラリそのものや、制限に関するライセンスの詳細な意味についてはGNUプロジェクトによる説明で解釈して下さい。 | C++/CLIだとEncodingというライブラリを使うことで変換ができますが、C++以下の範囲で扱う場合はIBM社が作成したオープンソースICU(International Components for Unicode)、GNUプロジェクトによって作られLGPLのICONVというライブラリがあります。ほかにも有志によって作られたフリーソフトnkf.dllというライブラリを使う方法もあります。ここではICUを使った方法について記述します。GNUは自由に使うことのできるUnixとしてのOSであるLinuxの開発プロジェクトで、GNU's Not Unixという意味だそうです。そうすると先頭にまたGNUが出てくるから、それは何の意味?ってなるとまたGNUはGNU's Not Unixって略語だよっていう風になる再帰的な略語です。GNUのGの意味は思考を停止しない限り永遠に再帰されます。LGPL(Lesser General Public License)は簡単に表現するとコンパイルするプログラムの配布には関与しないライセンスですが、ライブラリそのものや、制限に関するライセンスの詳細な意味についてはGNUプロジェクトによる説明で解釈して下さい。 | ||
+ | |||
+ | |||
+ | ICUはC++(Cpp)の技術を含むプロジェクトですので、C言語の領域からは外れます。C言語だけで、文字コード変換をやろうとすると、このようなライブラリがないために、もっと基礎的なコード変換技術を身に着ける必要があります。根本的な言語でやる方が敷居が高いというのはアセンブラ含めて、同様の事だと言えると思います。ここではそのような基礎的な技術は紹介しないので、C言語だけで実現する必要がある場合には、ICUプロジェクトのソースを解析するなりして、クラスやC++で登場する構文をを使わない形式で実現できるように挑戦してみると良いです。とても大変なことだと思います。 | ||