2010-03-09 116 views
2

用下面的代碼:奇怪的現象:Java轉義歐元符號

System.out.println("\"1. \u20ac\""); 
    System.out.println("\"2. Euro sign \u20ac\""); 
    System.out.println("\"3. Eurovalue +1,25\u20ac\""); 

我得到以下結果:

"1. €" 
    "2. Euro sign €" 
    "3. Eurovalue +1,25?€" 

爲什麼會出現一個問號 '?'在歐元(€)前的第3行?

有人能解釋我做錯了什麼嗎?我的環境是Windows 7的Eclipse 3.1與Jre版本1.6.0_18-ea-b05

+0

我沒有得到問號。你如何執行該代碼?在打印UTF-8時,我發現Eclipse中存在一個錯誤,偶爾會產生奇怪的結果(突然錯誤地使用前100次和後100次)。 – 2010-03-09 12:22:13

+0

它能在我的Linux機器上正常工作 - 您能描述一下您的確切環境嗎? (OS,Java版本等) – 2010-03-09 12:23:09

+0

Eclipse 3.1?窩。 – 2010-03-09 12:30:57

回答

0

我已經執行了代碼,我得到你想要的輸出很好。 如下 「1€」 「2.歐元符號€」 「3. Eurovalue + 1,25€」

既然你得到奇怪的輸出可能是在本地計算機區域設置的語言設置設置, 這可能會幫助你

+0

奇怪,如果它編碼,因爲它被轉義。 它真的很奇怪,這取決於我先連接哪個部分,結果是不同的。如果我將第一個歐元符號和其他東西連接在一起,然後最後將它與更長的字符串結合在一起,它可以正常工作。 – Martin 2010-03-09 12:48:58

2

我想我解決了它。

在Eclipse中爲java文件編碼cp1252。它看起來與ISO-8859-1相同,但在運行時結果不同。通過配置文件編碼到cp1252它再次工作。

真的很可怕:)