Hi, Cyril and Tony,

Thanks.

Tony's right. I just tested Cyril's solution. Unfortunately,  when
encoding=utf8 and fileencoding=cp936, line: "let char =
matchstr(getline("."), ".", col(".") - 1)" can only get the *FIRST*
8-bit out of a 2-byte cp936-encoded Chinese character. (To my
surprise, the hex value of the first 8-bit converted by iconv is
correct in cp936 encode standard. I just realized that iconv can just
convert a part of one Chinese Character.:)

I am trying to see if I can read the whole 2-byte Chinese char out or not.

Thanks,

Zhaojun

On 3/8/07, Cyril Slobin <[EMAIL PROTECTED]> wrote:
On 3/7/07, A.J.Mechelynck <[EMAIL PROTECTED]> wrote:

> IIUC, the above is for 'encoding' and 'fileencoding' being both 8-bit
> encodings. cp936 is the Microsoft encoding for mainland China: some characters
> (such as ASCII) are 8 bits, others are 16 bits; and UTF-8 (the 'encoding'
> Zhaojun uses) can use anywhere between 1 and 4 bytes to represent the
> "assigned" codepoints. For instance, the highest Unicode codepoint currently
> regarded as "valid" by the Unicode Consortium, U+10FFFD, is represented in
> UTF-8 as F4 8F BF BD.

No! The very goal of this code is that `encodig` is utf-8 while
`fileencoding` is different. But you are right noting that I have not
tested this `fileencoding` other than 8-bit one -- except the marginal
case when it is utf-8 too. But again -- `encoding` *is* multibyte and
it works. Why not just to test? I haven't Chinese fonts installed...

--
Cyril Slobin <[EMAIL PROTECTED]> `When I use a word,' Humpty Dumpty said,
<http://45.free.net/~slobin> `it means just what I choose it to mean'



--
Best,
Zhaojun (Joseph)

Reply via email to