2012-02-25 49 views
4

我有一個處理Unicode文本操作的項目。我使用Perl 5.014和Padre調試器v 0.86(這是ActiveState Perl發行版的最新Padre版本)。

在Padre中,能夠在右側的「調試器」窗格中查看(檢查/檢查)程序變量非常重要,特別是Unicode字符串。事實證明,調試器窗格不會在其字符字形中顯示字符串。對於標量,它顯示亂碼,對於數組,它以「\ x {05FF}」符號顯示,這是一種神祕且不直觀的表示。

有沒有辦法讓Padre在正確的字形中顯示字符串?去:「查看 - >語言」和改變語言沒有幫助。它隻影響菜單。
請注意,在Padre編輯器中,Unicode文字顯示爲

Padre:如何檢查/檢查Unicode字符串?

我正在運行Windows 7 x64。
我在節目中有這些:

use utf8; 
... 
binmode(STDOUT, ":unix:utf8"); 
binmode $DB::OUT, ':unix:utf8' if $DB::OUT; 
... 
+5

我沒有答案,但爲Padre開發者創建了一張票:http://padre.perlide.org/trac/ticket/1408 – szabgab 2012-02-25 06:49:45

回答

-1

作爲一個側面說明,你可能不希望:utf8層的binmode。它斷言你的數據是UTF-8,但它並不實際驗證它。你想要:encoding(UTF-8)。實際上,在http://www.perlmonks.org/?node_id=644786處描述的:utf8層有一個概念安全漏洞證明。

不幸的是,一些Perl文檔在這個問題上不是很清楚。

+0

使用':utf8'輸出沒有任何問題:Perl不會產生非法的utf8。至於輸入,你需要使用'使用警告FATAL =>「utf8」'來照顧弱點。 – tchrist 2012-03-05 13:38:21