2012-08-29 47 views
2

我在這裏面臨奇怪的問題。我試圖用字符§(alt + 21)作爲分隔符。但是當編譯源代碼時,我發現在類文件中這個字符顯示爲類似於矩形[]的字符。這是我的記號失敗。有人看到過嗎?Java編譯器和§(alt + 21)

String dtr = "abcd§pqrs"; 
StringTokenizer st = new StringTokenizer(templateDetails,"§"); 
在編譯的類文件

我看到下面的:

String dtr = "abcd[]pqrs"; 
StringTokenizer st = new StringTokenizer(templateDetails,"[]"); 

我該如何解決這個問題? TIA

+0

你是否告訴你的編譯器你的源文件編碼? – Thilo

+1

你真的會看到一個開合方括號,還是一個字符是一個盒子?如果後者是真的,你很可能需要設置你的編譯器的編碼。 – Vulcan

+0

它正在使用我的Win7和JDK_1.6.30。這個類文件有'\ 247' – Favonius

回答

5

使用\u####語法指定具有特定Unicode編號的字符常量。

這將允許您在純ASCII中指定它,而不必混淆文件編碼和編譯器行爲。

+2

這是一個可行的解決方案,但我仍*建議「搞亂」與正確的編碼:有沒有理由避免使用一個合理的字符編碼這些天(特別是UTF-8) –

+0

@JoachimSauer我已經通過字符編碼來解決問題了,我們已經在所有Maven項目中對ASCII編碼進行了標準化。任何人說「只記得在所有機器上做X,Y和Z」就等着發生災難。 –

+0

我已經足夠被那些我們在我們所有項目中使用UTF-8編碼進行標準化的問題咬住了;-)如果做得正確的話,它*可能使你的構建不依賴於環境。但我明白你來自哪裏。 –

-1

可能您的環境不接受該字符。 您可以更新您的編譯器並再次檢查。