Если я использую кодировку UTF-8 (в веб-сервисе) без изменений во внешнем интерфейсе (я использую только base64 во внешнем интерфейсе, чтобы сделать URL-адрес безопасными), компьютеры, на которых Windows работает на английском языке, работают хорошо но я получаю квадраты из черных ромбов с точками опроса внутри, если Windows, в которой используется приложение, написана на португальском языке. Поэтому я попробовал использовать ISO-8859-1 вместо UTF-8... теперь все наоборот, португальские Windows работают хорошо, а английские - нет, но я подумал, что UTF-8 похож на какой-то супер-набор диаграмм, который поддерживает все.
Простой пример кода:
переменная PCourse - это имя курса, которое я получаю из параметров URL-адреса, и это строка, закодированная в 64, и имеет (/) заменяются на (-), чтобы не испортить параметры, поэтому (re) replace в конце.
Код: Выделить всё
byte[] decodedBytes = Base64.getDecoder().decode(Pcourse.replace("-", "/"));
course = new String(decodedBytes,"ISO-8859-1");
Я уже пытался заставить WhatTextField.getText() получить UTF-8 или ISO-8859-1 во внешнем интерфейсе, но безрезультатно, я не уверен, имеет ли 64base какое-то отношение к этому.
Заранее спасибо.>
Мобильная версия