O ile widzę na moim urządzeniu z Androidem (Motorola Razr działa 4.1.1) robi poprawnie kodowania/dekodowania Shift- JIS. Poniższy kod testu
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) {
}
wyjścia
03-06 10:09:25.733: D/MainActivity(3490): インターネットをもっと快適に
03-06 10:09:25.733: D/MainActivity(3490): インターネットをもっと快適に
więc możemy zobaczyć do kodowania i dekodowania działa. Jeśli utworzysz zwykły plik tekstowy zawierający ten sam zestaw bajtów, możesz potwierdzić, że jest to kodowanie Shift-JIS przez np. przeglądanie go w przeglądarce, co pozwoli ci wybrać kodowanie znaków.
Jeśli widzisz niezdefiniowane znaki, sugeruje to, że nie ma kodu Shift-JIS (być może jest to skompresowane dane?) Lub niepoprawnie wyciągasz dane. Jeśli możesz zapisać dane jako plik tekstowy, najprościej jest po prostu spróbować otworzyć go w przeglądarce i przechodzić przez różne kodowania znaków, aż znajdziesz właściwy.