[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[cvs-ml 769] Re: pserver経由で文字化け?
下のようにしてEUCの半角を無視すれば確率が上がります。
ACKのところは1行単位で変換しているので短い行は特に誤変換が多くなります。
もしEUCの半角が捨てられないのならもっとほかの方法で
対処しなければならないんじゃないでしょうか。
>(当方としては)SJIS半角カナのために、約4000文字のEUC漢字コードを
>捨てるわけにもいかないので、最後の判定文を
>
> sjis > euc ? SJIS : EUC
>
>とするしか、ないんでしょうか?
以前のパッチで上記のようにしたのですが、
確立はほんの少ししかあがりませんでした。
lcode.c
-----------------------------------------------------
SjisEucCheck( ptr, len, cp )
unsigned char *ptr;
T_KANJI *cp;
{
unsigned char *endp= ptr+len;
int sjis= 0, euc= 0, step = 0; /* step no init original BUG */
for(; ptr < endp ; ptr+= step ){
step= 1;
if( *ptr < 0x80 )
continue;
if( *ptr < 0xa0 ){
#if 0 /* ignore euc kana */
if( *ptr == 0x8e && IsKana( ptr[1] ) ){
euc+= 2; /* single shift */
step= 2;
}
#endif
if( IsSjis2( ptr[1] ) ){
sjis+= 2;
step= 2;
}
continue;
}
-----------------------------------------------------