[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
Re: euc-jp text vs utf-8
- X-ml-count: 1956
- Subject: Re: euc-jp text vs utf-8
- From: Miyashita Hisashi(宮下 尚:HIMI) <himi@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: 23 Feb 2000 09:19:48 +0900
- User-agent: T-gnus/6.14.1 (based on Gnus v5.8.3) SEMI/1.13.5 (Meihō) FLIM/1.13.2 (Kasanui) Emacs/20.5 (i386-*-nt5.0.2128) MULE/4.1 (AOI) Meadow/1.12 Beta1 (SASHINUKI:60)
Shin Miyazaki <shinm@xxxxxxxxx> writes:
> UTF-8 のマルチバイト文字の先頭は 0xC0 以上の値になるはずですので、
> この場合は、少なくとも「UTF-8じゃない」というのはわかると思います。
完全には、そうもいかないんですよ。Muleの自動判別は、
「あらゆる可能なsequeceの部分列も、許す。」
ということになっているので、(process inputのとき、これは特に重要)
A5 B9 A5 B3
10100101 10111001 10100101 10110011
って、sequenceは、
F9 A5 B9 A5 B3
11111001 10100101 10111001 10100101 10110011
っていうvalidなUTF-8の部分列とみなせるので、rejectはされないんです。
とはいえ、今回の場合は、6バイトあるから、rejectできるはずだなぁ。
というわけで、patchです。
from himi
## しかし、「ス」だけだと、むりだな。こりゃ。
Index: coding.c
===================================================================
RCS file: g:/repdev/Meadow/src/coding.c,v
retrieving revision 1.11
diff -c -r1.11 coding.c
*** coding.c 2000/01/29 11:28:01 1.11
--- coding.c 2000/02/23 00:17:25
***************
*** 2279,2285 ****
/* skip extra octets */
for (seq_maybe_bytes = 5;;seq_maybe_bytes--)
{
! if (seq_maybe_bytes < 0)
return 0;
src++;
if (src >= src_end)
--- 2279,2285 ----
/* skip extra octets */
for (seq_maybe_bytes = 5;;seq_maybe_bytes--)
{
! if (seq_maybe_bytes <= 0)
return 0;
src++;
if (src >= src_end)