A.J.Mechelynck wrote:

Charles E Campbell Jr wrote:

mbbill wrote:

I met a very strange problem recently, that is
when I set the following options:
set encoding=utf-8
set ignorecase
then the expression: if "\xe4"=="\xe4" fails.
I test it using:
if "\xe4"=="\xe4"
  echo "test"
endif
but I got nothing output, why ?

Try

set encoding=utf-8
if "\xe4" == "\xe4"
redraw!
echo "equal!"
else
redraw!
echo "not equal"
endif


Looks like your message is doing an unwanted disappearing act.

Regards,
Chip Campbell



It's not as simple as that, Dr. Chip: I get 0 (zero) as reply to

    :echo ("\xe4" == "\xe4")

when 'encoding' is UTF-8. However, the byte 0xE4 by itself is not a valid character in UTF-8. I also get 1 (one) in reply to

    :echo ("ä" == "\xc3\xa4")

where ä (a-umlaut) is Unicode codepoint U+00E4, represented in UTF-8 by the two bytes 0xC3 0xA4.

That's peculiar; I get (when I source the script):
equal!
1

with the following emendation to the script:

set encoding=utf-8
if "\xe4" == "\xe4"
redraw!
echo "equal!"
else
redraw!
echo "not equal"
endif
echo ("\xe4" == "\xe4")

But, without those redraws, I get no message.

Regards,
Chip Campbell

Reply via email to