〜最強のBeBOXを作る貝外伝〜
BeBoxでHaikuライフ kits/libtextencodingの巻
last modified 2005/03/20
berliOSへの移転およびCVS→subversionへの変更に伴う修正。
リンク
はご自由に行ってください。
はじめに
ソースの入手
svn co svn://svn.berlios.de/haiku/haiku/trunk/src/kits/textencoding
コンパイル
デフォルト引数のダブり修正(character_sets.cpp)
newの()削除(character_sets.cpp)
libiconv/config.hの修正、(getcなど)
jamfile中に-Dで定義されている部分をソースの頭に#defineで並べる(iconv.c、localcharset.c、relocatable.c)
正式には、プリコンパルドヘッダー使うところ。
画面
(なし)
メモ
インストール
インストールはSharedLibなんで/home/config/libに入れればOkかと思えばそうはいかず、
beos/system/libに入れないと(つまり標準と入れ替えないと)うまく動かないようです。
/beos/system/lib、/home/config/libに同時に同じ名称のがあるとまずいようです。
試行結果
大きいファイルには少し早い気もするけど、速度はオリジナルと大して変らないかな?
残念ながら、Net+でいくつか化けるページ(iso-2022-jpかな?)や文字(全角のチルダ)があります。
文字化けの原因?
character_sets.cppから、JIS、Shift_JIS、EUC相当部分を抜いてみる。
B_JIS_CONVERSION
const char * JIS0208aliases[] { "iso-ir-87","x0208","JIS_X0208-1983","csISO87JISX0208",NULL };
const BCharacterSet JIS0208(14,63,"JIS0208","JIS_C6226-1983",NULL,JIS0208aliases);
B_SJIS_CONVERSION
const char * shiftJISaliases[] { "MS_Kanji","csShiftJIS",NULL };
const BCharacterSet shiftJIS(12,17,"ShiftJIS","Shift_JIS","Shift_JIS",shiftJISaliases);
B_EUC_CONVERSION
const char * EUCPackedJapaneseAliases[] { "EUC-JP","csEUCPkdFmtJapanese",NULL };
const BCharacterSet packedJapanese(13,18,"EUC Packed Format Japanese","Extended_UNIX_Code_Packed_Format_for_Japanese","EUC-JP",EUCPackedJapaneseAliases);
JISはJIS_X0208-1983になっているけど、使用目的からしてiso-2022-jpの間違いのような?
ただこれはオリジナルのUTF8.hのコメントがそうなっているからしかたないんだけどね。。
あとShift_JISとEUCについても、
ここ
で出ているパッチを当てて
それぞれcp932、eucJP-msに直しておいたほうがいいのかなとも思ったり。
JIS/SJIS/EUC/UTF8限定でいいから、libiconv以外にいいコンバーターがあればいいんだけどね。
文字化け対策
ここ
にあるlibiconv1.9.1用パッチを当てて、
(パッチを当てたiconvから必要なファイルをコピーした。)
変更前
変更後
B_SJIS_CONVERSION
Shift JIS
CP932
B_EUC_CONVERSION
EUC Packed Format Japanese
EUCJP-MS
B_JIS_CONVERSION
JIS 0208
ISO-2022-JP
に変えてみた。
変更した結果、
受信メールの件名、内容は化けなくなったが、Net+でiso2022-jpで書いてるページはまだ一部化ける。
Net+でいわゆる機種依存文字(○数字や単位など)が見えるようになった。
Haruフォントはそういう文字も持ってたのね。Web掲示板愛好者にはおすすめかも。
いわゆる全角チルダ(〜)がうまくEUCに変換されないようだ。htmlを書いてIEで見ると化ける。
まあ当分様子見ですかな。
文字コードに詳しい人がいないと、この件でバグ報告を出すにはしんどいし。
【BeBoxでHaikuライフ】
【最強のBeBoxを作る貝】
【Top Page】