2016-03-30 32 views
0

"\ 303 \ 251" unicode'u görüntülerken Scala ile ilgili bir sorun var galiba. İdeal olarak "Ã ©" göstermeli, bunun yerine "ÃÂ ©" gösteriliyor.Scala kodlamayla ilgili sorun nedir?

2.10.4, 2.10.5 & 2.11.8 gibi birkaç scala sürümüyle denedim ancak aynı çıkışı aldım (yani, ÃÂ ©).

$ JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8 sbt 
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8 
> console 
Welcome to Scala version 2.11.1 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_71). 
scala> print ("\303\251") 
é 
scala> System.getProperty("file.encoding"); 
res2: String = UTF8 

bile hala 251 yani \ u00c3 \ u00A9, aynı çıkışı \ \ 303 için eşdeğer onaltılık kaçış değişmezleri kullanılan

scala> print ("\u00c3\u00a9") 
é 

Not: Ben sadece Linux ve Ubuntu OS bu sorunu karşısında ancak aşağıda gösterildiği gibi MAC içinde çok iyi çalışıyor: scala linux & ubuntu makinelerinde yanlış çıkış vererek neden

scala> print ("\303\251") 
é 

anlamadım. Bu sorunu gören var mı? Lütfen bunu nasıl düzelteceğimi bildirin. Zaman ayırdığınız için teşekkürler.

+0

Bu, muhtemelen bir Linux karakter kodlaması sorunudur. Linux makinelerinde kodlayan temel karakterin bu karakterleri Mac'ten farklı şekilde yorumladığını tahmin ediyorum. –

+0

Lubuntu 15.10 (Linux 4.2.0-34-jenerik) dizüstü bilgisayarımdaki REPL (2.11.7) 'den doğru şekilde yazdırılıyor. Bununla birlikte, "Sekiz kaçış edebi sözleri kabul edilmez" uyarısı alırım. – jwvh

+0

Komut satırından 'echo -e" \ u00c3 \ u00a9 "' u çağırdığınızda ne elde edersiniz? – jwvh

cevap

0

Evet, Linux karakter kodlaması sorun. Ortam değişkeni LANG (aşağıda gösterildiği gibi) değiştirildikten sonra, her şey düzgün çalışıyor.