BrowserField Blackberry, кодирование с некоторыми символами, такими как "'" - PullRequest
0 голосов
/ 29 ноября 2011

У меня проблема с BrowserField в Blackberry, у меня есть HTML-контент, содержащий некоторые символы, такие как «», но когда я пытаюсь показать этот контент в своем BrowserField, я не могу отобразить те символы, которые выглядят как этот " ? " Я изменил BrowserField на RichTextField, и я вижу там свои символы, поэтому я думаю, что проблема в BrowserField, я попытался изменить кодировку следующим образом:

HttpHeaders headers = new HttpHeaders();
headers.addProperty(HttpHeaders.HEADER_CONTENT_TYPE,HttpHeaders.CONTENT_TYPE_TEXT_HTML);
headers.addProperty(HttpHeaders.HEADER_ACCEPT_CHARSET, "ISO-8859-1,utf-8;q=0.7,*;q=0.7");


config.setProperty(BrowserFieldConfig.NAVIGATION_MODE, BrowserFieldConfig.NAVIGATION_MODE_POINTER);
config.setProperty(BrowserFieldConfig.ALLOW_CS_XHR, Boolean.TRUE);
config.setProperty(BrowserFieldConfig.HTTP_HEADERS, headers);

Но проблема все еще существует :( не могли бы вы мне помочь С наилучшими пожеланиями

1 Ответ

2 голосов
/ 29 ноября 2011

Возможно, проблема связана с различием между ISO-8859-1 и его расширенным набором Cp1252 (= Windows-1252). Один из дополнительных символов - это не кавычки ASCII, которые создает MS Word.

На страницах, отправляемых в браузер, может быть указано, что они соответствуют стандарту ISO-8859-1 (Latin-1), но на самом деле это расширенный набор Windows-1252 (Windows Latin-1). Даже на Mac все прошло нормально во всех браузерах. В этом случае вам необходимо перейти на серверную сторону к кодировке Cp1252.

response.setEncoding("Cp1252");

или

response.setContentType("text/html; charset=Windows-1252");

Конечно, UTF-8 не имеет этой проблемы и является международным. Так что жизнеспособная альтернатива.

...