2015-04-02 2 views
0

Я использую ниже двух линий в моем сервлета, чтобы отобразить арабский параметр URLПоказано арабские символы в сервлеты

response.setContentType("text/html; charset=UTF-8");

String s = new String(request.getParameter("p").getBytes("8859_1"), "UTF-8");

Обратите внимание, что в приведенном выше коде, если я передаю параметр p в качестве арабского символа, например:

затем отображает его как как ?????? символы

Любое предложение будет оценен

+0

Пожалуйста, измените вопрос, чтобы показать пример того, что возвращает 'request.getParameter («р»)'. – VGR

ответ

0

Поскольку параметр «р» является арабским символом, который вы не должны, вероятно, прочитать его как 8859_1 кодирования характер, поскольку он не соответствует арабским буквам - http://en.wikipedia.org/wiki/ISO/IEC_8859-1 Попробуйте использовать UTF- 8 для получения байтов.

+0

Я попытался с несколькими комбинациями: 'String s = new String (request.getParameter (« p »). GetBytes (« 8859_1 »),« cp1256 »);' и 'String s = new String (request.getParameter (" p ") .getBytes (" 8859_1 ")," UTF-8 ") ;, но проблема все еще существует @Stan – user3801082

+0

В обоих примерах вы используете параметр 8859_1 как параметр для getBytes(). Вы попробовали UTF-8? Также, где вы видите, что символ отображается неправильно? Это на jsp или вы проверяете режим отладки? – Stan

+0

Да, я пытался с UTF-8, и результат был таким же, я использую следующий код 'PrintWriter pw = response.getWriter(); request.setCharacterEncoding ("UTF-8"); response.setContentType ("text/html; charset = UTF-8"); Строка s = новая строка (request.getParameter («p»). GetBytes («8859_1»), «UTF-8»); pw.println (s); pw.close(); '@Stan – user3801082

0

в Tomcatserver.xml в конф папку, редактировать и поместить кодировку, как это

URIEncoding = "UTF-8"

<!-- A "Connector" represents an endpoint by which requests are received 
     and responses are returned. Documentation at : 
     Java HTTP Connector: /docs/config/http.html (blocking & non-blocking) 
     Java AJP Connector: /docs/config/ajp.html 
     APR (HTTP/AJP) Connector: /docs/apr.html 
     Define a non-SSL HTTP/1.1 Connector on port 8080 
    --> 

<Connector URIEncoding="UTF-8" connectionTimeout="20000" maxPostSize="67589953" port="8081" protocol="HTTP/1.1" redirectPort="8443"/> 

и если вы используете https

сделать то же самое

<!-- Define a SSL HTTP/1.1 Connector on port 8443 
     This connector uses the JSSE configuration, when using APR, the 
     connector should be using the OpenSSL style configuration 
     described in the APR documentation --> 
<Connector URIEncoding="UTF-8" SSLEnabled="true" clientAuth="false" ... 
Смежные вопросы