环境介绍:
Web容器(中间件):WebSphere7.0。
Web容器所在操作系统:windows2003 sp2。
数据库:oracle 10.2.0.1.0。
数据库所在操作系统:Red Hat Linux5.5
一般的应用程序在保存数据时,存到数据库当中出现乱码,可能跟如下两个部位有关(一般两个部位都需要调整)。
一是数据库方面:
将WE8ISO8859P1修改为ZHS16GBK。
首先要通过SSH或其他工具连接到Oracle所在操作系统(Server端)。
登录成功后,依次执行如下命令:
SQL> conn /as sysdba Connected. SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup mount ORACLE instance started. Total System Global Area 236000356 bytes Fixed Size 451684 bytes Variable Size 201326592 bytes Database Buffers 33554432 bytes Redo Buffers 667648 bytes Database mounted. SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; System altered. SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; System altered. SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0; System altered. SQL> alter database open; Database altered. SQL> ALTER DATABASE CHARACTER SET ZHS16GBK; ALTER DATABASE CHARACTER SET ZHS16GBK * ERROR at line 1: ORA-12712: new character set must be a superset of old character set --提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改: SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK; Database altered. SQL> select * from v$nls_parameters; PARAMETER VALUE ---------------------------------------------------------------- ---------------------------------------------------------------- NLS_LANGUAGE SIMPLIFIED CHINESE NLS_TERRITORY CHINA NLS_CURRENCY ¥ NLS_ISO_CURRENCY CHINA NLS_NUMERIC_CHARACTERS ., NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD-MON-RR NLS_DATE_LANGUAGE SIMPLIFIED CHINESE NLS_CHARACTERSET ZHS16GBK NLS_SORT BINARY NLS_TIME_FORMAT HH.MI.SSXFF AM NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR NLS_DUAL_CURRENCY ¥ NLS_NCHAR_CHARACTERSET AL16UTF16 NLS_COMP BINARY NLS_LENGTH_SEMANTICS BYTE NLS_NCHAR_CONV_EXCP FALSE 19 rows selected -- 此时可以看到,字符集已经改好。 --重启检查是否更改完成: SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup ORACLE instance started. Total System Global Area 236000356 bytes Fixed Size 451684 bytes Variable Size 201326592 bytes Database Buffers 33554432 bytes Redo Buffers 667648 bytes Database mounted. Database opened. SQL> select * from v$nls_parameters; 略 19 rows selected.
我们看到这个过程和之前ALTER DATABASE CHARACTER SET操作的内部过程是完全相同的,也就是说INTERNAL_USE提供的帮助就是使Oracle数据库绕过了子集与超集的校验。
注意:如果是操作生产库,一定要慎重。最好不要动字符集。
二是在WebSphere端调整:
1.在网页控制台中修改(这个比较直观,建议使用这种,如果控制台打不开,可以看第2种方法):
输入用户名和密码进到WebSphere控制台,操作如下:Servers -> Server Types -> WebSphere application servers -> server1 -> Java and process Management -> Process definition -> Java Virtual Machine -> Generic JVM arguments : -Dfile.encoding=GBK -Ddefault.client.encoding=GBK
2.修改Server.xml文件(注意,在修改任何服务器文件时,一定要先做好备份):
server.xml路径如下:C:\Program Files\IBM\WebSphere\AppServer\profiles\AppSrv01\config\cells\testNode01Cell\nodes\testNode01\servers\server1.xml
找到文件后,定位到这个字符串 genericJvmArguments="" 修改为 genericJvmArguments="-Dfile.encoding=GBK -Ddefault.client.encoding=GBK"
相关推荐
Websphere 5.1是IBM提供的...在使用过程中,遇到问题时,可以参考IBM官方文档或在线社区寻求帮助,因为理解和解决问题是持续学习过程的一部分。希望这些信息能帮助到有需要的人,避免他们在网络资料的海洋中迷失方向。
JDBC数据库操作乱码非主流解决方案---JDBC连接驱动代理 以驱动的方式提供给使用方,在底层实现连接的代理管理功能,向使用者隐藏 实现过程以及无缝的过渡 你需要了解下列参数: proxy.driver= (必须)实际要连接...
1. **编辑配置文件**:通过命令行工具(如vi编辑器)编辑WebSphere配置文件`/WebSphere/AppServer/properties/encoding.properties`,调整字符编码设置以解决可能出现的乱码问题。 2. **重启服务**:修改完毕后重启...
解决中文乱码通常涉及字符编码设置,如文件编码、IDE编码、HTTP头编码、页面编码等。 【表单GET与POST】 GET将数据附在URL后面,适合少量数据且不敏感的场景;POST将数据放在请求体中,适合大量或敏感数据。 ...
以上是Spring+Hibernate将文件二进制数据持久化到数据库的解决方案,而Struts通过将表单中file类型的组件映射为ActionForm中类型为org.apache.struts.upload. FormFile的属性来获取表单提交的文件数据。 工程...
根据给定的信息,标题、描述和标签均指向“javaEE”,但内容部分似乎是不相关的文本,可能包含了乱码或是非中文字符。为了遵循要求,我将专注于“javaEE”这一主题,提供详细的IT知识。 ### Java EE:企业级Java...
- **1.4.1 J2EE应用服务器**:J2EE应用服务器是运行J2EE应用程序的平台,常见的有Apache Tomcat、IBM WebSphere、Oracle WebLogic等。 - **1.4.2 J2EE开发环境搭建**:一般包括安装Java JDK、配置J2EE应用服务器以及...
- **1.4.1 J2EE应用服务器**:如Apache Tomcat、IBM WebSphere、Oracle WebLogic等,它们提供了一个运行J2EE应用所需的环境。 - **1.4.2 J2EE开发环境搭建**:主要包括安装JDK(Java Development Kit)、配置开发...