2012-06-27 14 views
12

Lütfen nasıl olduğunu neden sormadığımı unutmayın. Ve RCP'ye özgü bir problem mi, yoksa java'ya özgü bir şey mi bilmiyorum.Java kaynak dosyalarında neden unicode'dan kurtulmam gerekiyor?

Java kaynak dosyam UTF-8 olarak kodlanmış.

Bu gibi benim edebi dizeleri tanımlarsanız:

enter image description here

: beklediğim gibi bir Eclipse uygulama olarak Eclipse onu başlatarak uygulamada dize kullandığınızda

new Language("fr", "Français"), 
    new Language("zh", "中文") 

Çalışıyor

"Eclipse Ürün Verme Sihirbazı" tarafından oluşturulan .exe'yi başlattığımda başarısız olursa:

enter image description here

kullandığım çözüm böyle karakter kaçmak etmektir

: Bu yapmanın hiçbir sorun yok

new Language("fr", "Fran\u00e7ais"), // Français 
    new Language("zh", "\u4e2d\u6587") // 中文 

ama (bütün diğer dizeleri, özellikleri dosyalarında sadece isimleri önceden kodlanmıştır dillerdir) Anlamaktan hoşlanırım.

Derleyicinin, the bytecode'u oluştururken java hazır dizelerini dönüştürmek zorunda olduğunu düşündüm. Peki neden unicode kaçmak gerekli? Java kaynak dosyalarında yüksek aralıklı unicode karakterlerini kullanmak yanlış mıdır? Derlemelerde ve kaçan karakterlerin işlenmesinden farklı olan karakterlere tam olarak ne olur? Sorun sadece RCP önbelleği ile ilgili mi?

+10

Eclipse Ürün İhracat Sihirbazı UTF-8 olarak dosyalarınızı yorumlama olmadığını görünen eklentinin build.properties dosyasında metin kodlamasını belirterek düzgün çalışması için yapılabilir. Belki de Eclipse'in JVM'sini UTF-8'e ('eclipse.ini' içinde' -Dfile.encoding = UTF8 ') ayarlanmış olarak çalıştırmanız gerekir. –

+1

Bu, neden olduğunu açıklayamasa da, alternatif bir çözüm önermektedir ve her ne sebepten olursa olsun ihracat sihirbazının projenin kodlamasını doğru bir şekilde yerine getirmediğine işaret etmektedir: http://stackoverflow.com/questions/6891079/eclipse- rcp-yanlış-kodlama-ürün-dağıtım-ürün- – Jiddo

+0

@Matt Ball'ın açıklamasını doğrulamak için, cadı doğru olduğunu düşünüyorum, sihirbazda şu seçeneği ayarlamayı deneyin: "Çalışma alanında derlenmiş sınıf dosyalarını kullan" –

cevap

10

Eclipse Ürün Verme Sihirbazı dosyalarınızı UTF-8 olarak yorumlamıyor gibi görünüyor. Belki de Eclipse'in JVM'sini kodlama seti UTF-8 ile (eclipse.ini'da -Dfile.encoding=UTF8) çalıştırmanız gerekiyor mu? (OP isteğiyle Copypasta'd)

2

bir plug-in, bu IDE içinde normal oluşturma işlemi ayrı bir işlem yoluyla derlenmiş ihraç etmektedir. Oluşturma işlemi (PDE.Build), IDE tarafından kullanılan metin kodlamasını göz ardı eden bir known bug var.

ihracat

javacDefaultEncoding.. =UTF-8