SOS:关于字符集(Oracle9+JAVA)
1.关于NLS_LANG
select a.parameter,a.value as nls_database,b.value as nls_instance,c.value as nls_session
from nls_database_parameters a,nls_instance_parameters b,nls_session_parameterS c
where a.parameter=b.parameter(+) and a.parameter=c.parameter(+)
NLS_CALENDAR GREGORIAN GREGORIAN
NLS_CHARACTERSET ZHT16MSWIN950
NLS_COMP BINARY BINARY
NLS_CURRENCY $ RMB
NLS_DATE_FORMAT DD-MON-RR DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN SIMPLIFIED CHINESE
NLS_DUAL_CURRENCY $ RMB
NLS_ISO_CURRENCY AMERICA CHINA
NLS_LANGUAGE AMERICAN AMERICAN SIMPLIFIED CHINESE
NLS_LENGTH_SEMANTICS BYTE BYTE BYTE
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_NCHAR_CONV_EXCP FALSE FALSE FALSE
NLS_NUMERIC_CHARACTERS ., .,
NLS_RDBMS_VERSION 9.2.0.1.0
NLS_SORT BINARY BINARY
NLS_TERRITORY AMERICA AMERICA CHINA
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM DD-MON-RR HH.MI.SSXFF AM
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR DD-MON-RR HH.MI.SSXFF AM TZH:TZM
NLS_TIME_FORMAT HH.MI.SSXFF AM HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR HH.MI.SSXFF AM TZH:TZM
2.Filter
public class SetCharacterEncodingFilter implements Filter {
protected String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true;
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if (value == null)
this.ignore = true;
else if (value.equalsIgnoreCase("true"))
this.ignore = true;
else if (value.equalsIgnoreCase("yes"))
this.ignore = true;
else
this.ignore = false;
System.out.println(encoding);
}
public void destroy() {
this.encoding = null;
this.filterConfig = null;
}
public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain)throws IOException, ServletException {
if (ignore || (request.getCharacterEncoding() == null)) {
if (this.encoding != null){
request.setCharacterEncoding(this.encoding);
//response.setCharacterEncoding(this.encoding);
//System.out.println(this.encoding);
}
}
chain.doFilter(request, response);
}
}
WEB.XML配置:
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>com.myjsp.normal.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>gb2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3.出现的问题:
JSP页面(GB2312)输入:中华人民共和国(简体)
ORALCE服务器看到的:中華人民共和國(繁體)
ORALCE客户端看到的:中华人民共和国(简体)
JSP页面(gb2312)显示:中?人民共和?(也即部分乱码)
JSP页面(BIG5)显示:中華人民共和國(繁體)
★★★现在怎么让JSP无论显示繁简都正确呢?