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.