2012-12-05 45 views
5

Android'de shift-JIS (dizgiyi dizesine dönüştürür) nasıl çözebilirim?
ben böyle bir şey denedim ama çalışmıyorandroidde shift-jis kodunu çözme

kodlamak:

String test = "some text"; 
byte[] bytes = test.getBytes("Shift_JIS"); 

kod çözme:

String decoded = new String(bytes, "Shift_JIS"); 

i Japon rehber benim cihaza kaydedilir ve i üzerinde çalışıyorum kişileri geri yüklediğimde yedekleme/geri yükleme uygulaması, tanımlanmamış karakterleri gösterir.
yüzden onun Shift-JIS ile veritabanına kaydedilir düşünüyorum ve ben doğru şifreleme/şifre çözme Üst Karakter- yapar Bildiğim kadarıyla (Motorola Razr 4.1.1 çalıştıran) Android cihazımda görebileceğiniz gibi o

cevap

2

deşifre etmek istiyorum JIS. Test kodu aşağıdaki

try { 
     String test = "インターネットをもっと快適に"; 
     byte[] bytes = test.getBytes("Shift_JIS"); 
     byte[] inShiftJis = { 
       -125, 67, -125, -109, -125, 94, -127, 91, -125, 108, -125, 98, -125, 103, -126, 
       -16, -126, -32, -126, -63, -126, -58, -119, -11, -109, 75, -126, -55 
     }; 

     String decoded = new String(bytes, "Shift_JIS"); 
     String fromShiftJis = new String(inShiftJis, "Shift_JIS"); 
     Log.d(LOG_TAG, decoded); 
     Log.d(LOG_TAG, fromShiftJis); 
    } catch (UnsupportedEncodingException e) { 

    } 

çıkışları

03-06 10:09:25.733: D/MainActivity(3490): インターネットをもっと快適に 
03-06 10:09:25.733: D/MainActivity(3490): インターネットをもっと快適に 

yüzden kodlamak görebilir ve kod çözme çalışıyor. Aynı bayt kümesini içeren düz bir metin dosyası oluşturursanız, bunun Shift-JIS kodlaması olduğunu doğrulayabilirsiniz. Karakter kodlamasını seçmenize izin veren bir tarayıcıda görüntülemek.

Bu nedenle, tanımlanmamış karakterler görüyorsanız, ya Shift-JIS kodlamasında (belki de sıkıştırılmış verilerde) yoksa ya da verileri yanlış şekilde çekiyorsunuzdur. Verileri bir metin dosyası olarak kaydedebilirseniz, bir tarayıcıda açmayı ve doğru karakteri bulana kadar çeşitli karakter kodlamalarını kullanmanın en hızlı yolu olabilir.

İlgili konular