2012-12-05 17 views
5

Come posso decodificare shift-JIS (convertirlo in stringa) in Android?
Ho provato qualcosa di simile, ma non funzionadecode shift-jis in android

codificare:

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

decodifica:

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

ho un contatto giapponesi salvate nel dispositivo e sto lavorando backup/ripristino dell'applicazione quando ripristino i contatti mostra caratteri non definiti.
Quindi penso che la sua salvati nel database come Shift-JIS e voglio decodificarlo

risposta

2

Per quanto posso vedere sul mio dispositivo Android (Motorola Razr in esecuzione 4.1.1) lo fa correttamente codifica/decodifica Shift JIS. I seguenti test code

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) { 

    } 

uscite

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

così possiamo vedere per codificare e decodificare sta lavorando. Se crei un file di testo semplice contenente lo stesso set di byte, puoi confermare che questa è la codifica Shift-JIS ad es. visualizzarlo in un browser, che ti permetterà di scegliere la codifica dei caratteri.

Quindi, se stai vedendo caratteri non definiti, suggerirebbe che non sia nella codifica Shift-JIS (forse sono dati compressi?) O stai estrapolando i dati in modo errato. Se è possibile salvare i dati come file di testo, potrebbe essere più rapido tentare di aprirli in un browser e passare attraverso le varie codifiche dei caratteri fino a trovare quello giusto.

Problemi correlati