[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;
  }
-----------------------------------------------------