我的项目要求我用JSP编写一个Web应用程序来与Oracle 10g R2进行通信
JSP / Javascript / HTML保存在OC4J 9i中,数据库使用字符集UTF-8创建。 JSP和Oracle之间的接口基于JDBC Thin驱动程序
我尝试在JSP页面上输入一些中文字符,然后保存到Oracle。在Oracle(SQL Plus)中,这些字符无法正确显示。然后使用ResetSet.getString也无法正确显示字符。
仅供参考,每个JSP的页面指令已经是<%@ page contentType ='text / html; charset = utf-8'pageEncoding ='utf-8'%>
任何提示?
答案 0 :(得分:0)
我试图在JSP页面上输入一些中文字符
的页面编码 JSP页面必须设置为UTF-8。
<%@ page pageEncoding="UTF-8" %>
如果已使用Content-Type: text/html; charset=UTF-8
标头到达回复,请使用HTTP响应标头检查工具(例如Firebug)进行验证。
对doPost()
中提交的数据进行后处理的servlet必须在访问参数之前将请求编码设置为UTF-8 。
request.setCharacterEncoding("UTF-8");
如果它实际上是一个GET请求并且您正在doGet()
收集参数,那么您需要配置相关的servletcontainer以使用UTF-8来解码查询字符串。这是一个以Tomcat为目标的示例:
<Connector (...) URIEncoding="UTF-8" />
然后保存到Oracle。在Oracle(SQL Plus)中,这些字符无法正确显示。
必须使用正确的字符集创建数据库:
CREATE DATABASE dbname CHARACTER SET UTF8
然后使用ResetSet.getString也无法正确显示字符。
答案 1 :(得分:0)
确保JDBC连接上的defaultNChar设置为true。请参阅defaultNChar property。