Yığındaki tüm katmanlarımı UTF-8 kodlamasına dönüştürmek için yardım arıyorum.JSP/GlassFish: UTF-8 kodlamasını doğru şekilde ayarlama
http://www.javapractices.com/topic/TopicAction.do?Id=206
Ben kodlaması hakkında endişelenmenize gerek 3 yerleri açıklayan:
Bu güzel bir makale buldum. (1) Oracle veritabanım şu anda UTF-8 olarak ayarlandığından, (2) tarayıcı ve (3) sunucudan endişe duyuyor. Ben de ancak uygulama konusunda bazı acemi sorularla, bu detaylı makaleyi aşağıda izlemeye çalışıyorumhttp://balusc.blogspot.com/2009/05/unicode-how-to-get-characters-right.html#JSPServletRequest
bulundu. tarayıcısını ele almak için, ben her JSP sayfasının üst kısmında şunlar emin yaptık:<%@page pageEncoding="UTF-8"%>
(Referans için, here bakınız). Ben GlassFish 3.1.2 kullanıyorum yana
request.setCharacterEncoding("UTF-8");
:
sunucuyu ele almak için, ben şu Java servlet çizgi ve request.getParameter()
veya request.getAttribute()
deyimi vermeden önce JSP sayfalarını eklemeyi unutmayın yapılmış varsayılan olarak UTF-8 kullanmıyor, bu yüzden elle bir şekilde ayarlamanız gerekir.
glassfish-web.xml
adlı bir dosya hakkında çok fazla web sitesi gördüm. Normal glassfish'in bu kısmı mı yükleniyor? Nerede bulacağımı bilmiyorum. Web uygulamam için WEB-INF
dosyamda web.xml
dosyasını kullanıyorum. Birisi bu web.xml
dosyasını değiştirmem gerekip gerekmediğini anlamaya yardımcı olabilir mi, ya da camfish için kodlamayı yapılandırmak için glassfish-web.xml
adlı yeni bir dosya bulmam mı gerekiyor? JSP/servlet isteği için
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
...
, ben
<parameter-encoding default-charset="UTF-8"/>
bu TAMAM web.xml
dosyaya koymak mı web.xml
dosyasında aşağıdaki satırı içerir:
My web.xml
dosya ile başlar? Veya, bazı glassfish-web.xml
dosya gitmek gerekiyor mu?
<jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <page-encoding>UTF-8</page-encoding> </jsp-property-group> </jsp-config>
ben bu satırlar sadece <web-app>
ve </web-app>
arasında insert farz ediyorum: JSP/servlet sonuç alabilmek için
web.xml
dosyasında aşağıdaki koydu. Ancak, bunun yerine başka bir tanıtıcıya (
<glassfish-web-app>
ve
</glassfish-web-app>
gibi) girmeleri gerekip gerekmediğini bildirin.
<meta http-equiv="content-type" content="text/html; charset=utf-8">
Yararlı referanslar:
Ayrıca JSP <head>
bölümünde aşağıdaki koymak
How to get rid of WARNING: PWC4011: Unable to set request character encoding to UTF-8
https://stackoverflow.com/tags/servlet-filters/info
https://wikis.oracle.com/display/GlassFish/FaqHttpRequestParameterEncoding
Teşekkür @unwichtich, bu yüzden BOTH dosyalarının WEB-INF klasöründe bulunması gerektiği doğru mu? ('Web.xml' AND 'glassfish-web.xml')? Ayrıca, GlassFish'i oluşturduktan sonra bu 'glassfish-web.xml' dosyasını aramak için yapılandırmam veya GlassFish'in otomatik olarak bulması gerekir mi? – user46688
Glassfish-web.xml, varsayılan kodlama gibi Glassfish'e özgü yapılandırma özellikleri için kullanmanız gerekmiyorsa gerçekten gerekli değildir. Dosya WEB-INF klasörüne yerleştirilirse otomatik olarak taranır, Temizlemeden ve projenizi yeniden tasarlamadan önce yaptığınızdan emin olun :) – unwichtich
Üzgünüm, bunun da gerekli olduğunu unutmuşum. Cevabımı güncelledim. – unwichtich