다음 코드는 내 문제를 보여줍니다. 그것을 실행하면 나에게 "UCS-2LE : 코드 포인트"\ x {20541} "C : /Perl/site/lib/Tk/Widget.pm 205 행에 너무 높습니다 (E : \ test)라는 오류 메시지가 표시됩니다. PL 라인 9 ".Perl Tk에서 코드 포인트가 너무 높은 문제를 수정하는 방법이 있습니까?
내 Tk 버전이 804.028이고 WinXP (중국어 간체 버전)에서 ActivePerl 10.0.0을 실행 중입니다.
주변에 방법이 있는지 아는 사람이 있습니까? 항상 감사합니다 :)
use strict;use warnings;
use utf8;
use Tk;
my $mw = MainWindow->new;
my $text = ""; #A Chinese character
eval{
$mw->Label(-text => $text)->pack;
};
warn [email protected] if [email protected];
MainLoop;
U + 20541이 실제로 유효하지 않으므로 16 진수/10 진수 문제 일 수 있습니다. '倽'문자는 십진수 * 20541이지만 [U + 503D] (http://www.fileformat.info/info/unicode/char/503d/index.htm)입니다. – dkarp
@dkarp : U + 20541은 완벽하게 유효한 유니 코드 문자()이며 BMP (Basic Multilingual Plane) 외부에 있으며 16 비트에 맞지 않습니다. Tcl/Tk는 유니 코드 문자를 UCS-2LE (문자 당 16 비트 고정)로 저장하기 때문에이 문자를 저장할 수 없습니다. 전체 유니 코드는 [wishlist] (http://wiki.tcl.tk/883)에 있습니다 (# 92). – mscha
@mscha : 유니 코드는 0x10FFFF까지만 올라갑니다. 0x20541은 그보다 큽니다. – tchrist