sprintf("%O", str) (aka describe_svalue()) uses non-8bit proof isprint() to determine printable characters.
Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=2578
Reported by @grubba
From: "sgz@chinese.com" <sgz@chinese.com>
To: "pike@roxen.com" <pike@roxen.com>
Date: 2001-11-28 21:12:30
Subject: Re: Re: Re: About double byte char
[ The following text is in the "gb2312" character set. ]
[ Your display is set for the "iso-8859-1" character set. ]
[ Some characters may be displayed incorrectly. ]
Pike v7.2 release 239 running Hilfe v2.0 (Incremental Pike Frontend)
> string s="»ùÓÚÍøÂçµÄÆóÒµ¹ÜÀíÓ¦ÓÃÈí¼þ";
Result:
"\273\371\323\332\315\370\302\347\265\304\306\363\322\265\271\334\300\35
5\323\246\323\303\310\355\274\376"
> write("%O\n",s);
"\273\371\323\332\315\370\302\347\265\304\306\363\322\265\271\334\300\355\323\24
6\323\303\310\355\274\376"
Result: 107
>
sigh. RIS,help me plz.