4
我目前在Perl中獲取正則表達式(取自我的earlier question)以匹配來自非ASCII語言環境的單詞字符(即德語變音符號) 。語言環境感知的Perl正則表達式(匹配的單詞邊界)
我已經嘗試了各種東西,如設置正確的語言環境(使用setlocale),將我從MySQL接收的數據轉換爲UTF8(使用decode_utf8),等等......不幸的是,無濟於事。谷歌也沒有太多幫助。
是否有機會獲得以下的正則表達式語言環境意識,使
$street = "Täststraße"; # I know that this is not orthographically correct
$street =~ s{
\b (\w{0,3}) (\w*) \b
}
{
$1 . ('*' x length $2)
}gex;
結束返回$street = "Täs*******"
代替"Tästs***ße"
?
這很奇怪......當以獨立的方式運行代碼確實有效。 事實證明,「使用語言環境」打破了事情......一旦我刪除了一切恢復正常。 – 2009-10-12 08:06:38
是的,應該避免使用「locale」。如果你在UTF8編碼的源代碼中有utf8文字,請使用「utf8」。否則,使用Encode處理編碼,並在擔保時使用Unicode :: Semantics。 – jrockway 2009-10-12 08:08:00
在所有情況下,「使用語言環境」是一個壞主意嗎?它是否應該被棄用? – Ether 2009-10-12 16:41:38