`
zpball
  • 浏览: 916987 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

乱码问题备忘

阅读更多
请查一下系统设置的 locale 是什么,请把LANG设置为 zh_CN.gbk,
同时你还可以在启动文件中加入-Dfile.encoding=GBK, 例如在setDomainEnv.sh中修改JAVA_OPTIONS为:
JAVA_OPTIONS="${JAVA_OPTIONS} -Dfile.encoding=GBK"
export JAVA_OPTIONS
如果您使用的是GB18030字库,请试一下以下参数:
-Dfile.encoding=GB18030
另外,如果您是从数据库读出的数据,请保证从数据库读出的就是正确字符。

这是常见的处理“中文乱码”的解决方式。

IBM----GB18030 已经包含了GBK 请看看以下文档
http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1811997D29000
http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2811995H31000

WEBLOGIC相关的中文问题
----------------------------------------------

1. JSP文件中的中文提示信息不能正确显示。
   最直接的原因是WebLogic的默认字符集不是中文字符集(Weblogic8.1里是setlocal,Weblogic7.0sp3,sp4为UTF-8),
   因此可以在JSP页面中设置字符集,加入如下脚本:
   <%@ page contentType=“text/html; charset=GBK“ %>

   这种做法需要对每个JSP页面进行设置。

----------------------------------------------
2. JSP文件中包含中文提示信息时,不能正确编译
   解决方法是在weblogic.xml文件的<jsp-descriptor>部分加入
   <jsp-descriptor>
        <jsp-param>
         <param-name>compilerSupportsEncoding</param-name>
         <param-value>true</param-value>
            </jsp-param>
            <jsp-param>
              <param-name>encoding</param-name>
              <param-value>GBK</param-value>
            </jsp-param>
   </jsp-descriptor>

----------------------------------------------

3. 在JSP文件之间传递中文时,如果不能正确传递中文数据
   方法(1)  可在web.xml文件中加入
   <context-param>
      <param-name>weblogic.httpd.inputCharset./*</param-name>
      <param-value>GBK</param-value>
   </context-param>
 
   方法(2)  在weblogic.xml里加上如下脚本:
   <charset-params>
  <input-charset>
   <resource-path>/*</resource-path>
   <java-charset-name>GBK</java-charset-name>
  </input-charset>
   </charset-params>
   方法(3)  当然这种问题也可以自己用java.net.URLEncoder和java.net.URLDecoder来处理中文.


----------------------------------------------

4. 从数据库中检索出来的中文显示不正确。首先查询数据库:
  
   select * from v$nls_parameters where parameter='NLS_CHARACTERSET';
  
   得到数据库的字符集, 如果ZHS16GBK, 则JDBC的操作不需要转码;
   如果是us7ascii, 则需要转码或者作相关配置.
  
   下面以使用不同的数据库驱动程序为例来介绍.
   a. 如果数据库使用的是中文字符集,而且使用的是WebLogic提供的TYPE2 driver (OCI driver),
      在配置连接池时设置Properties属性:
   weblogic.codeset=GBK
   b. 如果使用Thin Driver, 那么需要在查询数据库的时候将字符集由ISO转换为GBK,
      写入数据库的时候将字符集由GBK转换为ISO.

  举个例子:
  插入一条记录:
  Connection conn=null;
  PreparedStatement pstmt = null;
  try {
   String strSql="insert into tabA(A,B) values('1111','王超')";
   conn=ds.getConnection();
   strSql = new String(strSql.getBytes("GBK"), "ISO-8859-1");
   pstmt = conn.prepareStatement(strSql);
   pstmt.executeUpdate();
  }
  catch (Exception e) {
   //logger.error(e, e);
  }
  finally {
   disconn(conn, pstmt);
  }
  查询一条记录:
  Connection conn=null;
  PreparedStatement pstmt = null;
  ResultSet rs=null;
  try {
   String strSql="select B from tabA where A='1111'";
   conn=ds.getConnection();
   strSql = new String(strSql.getBytes("GBK"), "ISO-8859-1");
   pstmt = conn.prepareStatement(strSql);
   rs=pstmt.executeQuery();
   String strB;
   if (rs.next()){
    strB=new String(rs.getString(1).getBytes("ISO-8859-1"), "GBK");
  }
  catch (Exception e) {
   //logger.error(e, e);
  }
  finally {
   disconn(conn, pstmt, rs);
  }
  建议在属性文件里设置oracle字符集, 根据字符集判断是否转码, 以增加应用的移植性.
  
----------------------------------------------

5. 静态页面中文信息不能正确显示。
   浏览器端看到中文不能正确显示,首先应该检查浏览器是否支持中文,浏览器的编码是否设置正确。
   为保证静态页面中文信息正确显示可以在HTML <HEAD> 部分增加:
   <meta http-equiv="Content-Type" content="text/html" charset="GBK">

----------------------------------------------

6. 文件名和目录中的中文问题
   如果你的文件名或者目录是中文的,这时需要使用java.net.URLEncoder编码.
   举例, 在test.jsp里, 你需要提供一个超链接到 ./测试/测试.jsp, 你可以这么写:
   <p><a href="<%=java.net.URLEncoder.encode("./测试/测试.jsp")%>">go</p>

分享到:
评论

相关推荐

    长周期备忘录代码下载

    从给定的文件标题“长周期备忘录代码下载”以及描述“可作为长周期...然而,代码片段中存在一些未完成或未明确的部分,例如星期表示的缺失和部分音频文件路径的乱码,这可能需要进一步的调试和修正才能完全发挥其功能。

    这是一个备忘本

    4. **项目进度跟踪**:团队成员可以使用备忘本来记录项目的进展情况,包括完成的任务、待解决的问题等,便于团队协作沟通。 ### 三、备忘本的技术实现 1. **数据存储**:备忘本的核心功能之一就是存储信息。常见的...

    备忘录VNT文件转换为TXT文件

    如果VNT文件包含了特殊字符或非ASCII字符,这一步尤其重要,因为不正确的编码可能导致乱码。 最后,程序将转换后的文本写入新的TXT文件中,同时保留原有的元数据,如创建日期和修改日期,如果可能的话。这个新生成...

    Android备忘

    - **解决乱码问题:** 需要正确设置字符编码,确保数据在传输过程中的完整性。 5. **硬件访问:** - **Google Maps API:** 用于集成地图功能。 - **摄像头、传感器API:** 提供了访问硬件的能力,例如拍照、...

    encoding-cheat-sheet:用于基本编程的备忘单

    理解正确的编码方式对于防止乱码问题至关重要。 Python是一种广泛使用的高级编程语言,以其简洁明了的语法和强大的库支持而闻名。Python中的编码涉及到字符串的处理,比如使用`encode`和`decode`函数来在不同编码...

    飞雪桌面日历 2.62 绿色版

    卸载时绿色版请使用Uninstall.exe,安装版使用unins000...8.修正繁体XP系统下天气预报提示信息出现乱码问题。 9.修改启动项,启动时间缩短了约9% 10.修正大部分潜在的运行错误,同时升级了卸载/修复程序到1.8.0.200版本

    foxmail65最新版

    New)Foxmail6.5 正式版发布! Foxmail6.5 正式版对 Beta3 版的主要改进 新增待办事项功能 ...修改了个别邮件出现乱码的问题; 修改了个别情况下邮件收取后出现邮件丢失的问题; 修正了若干bug。

    康康桌面记事贴 v1.03

    简单易用的桌面记事本, 记录您的工作安排,备忘信息。可伸缩窗口,调节窗口透明度,设置背景色,自动保存,自动识别网址并...窗体的乱码问题修改2.右键菜单中添加复制,粘贴等功能3.托盘图标左键单击,窗口最顶端显示

    康康桌面记事贴 v1.03.zip

    简单易用的桌面记事本, 记录您的工作安排,备忘信息。 可伸缩窗口,调节窗口透明度,设置背景色,自动保存,自动...窗体的乱码问题修改 2.右键菜单中添加复制,粘贴等功能 3.托盘图标左键单击,窗口最顶端显示

    design-training:用于使用html,css,JavaScript进行设计实践

    写在参考备忘录中运行get_html_title.py生成references.md 修复reference.md中的乱码使用references.md在Markdown PDF中生成references.html在VSCode中阅读解释时的References-memo.md打开和阅读多篇文章时的...

    Python实现简单截取中文字符串的方法

    但是截取utf-8的中文机会截取一半导致一些不是乱码的乱码.其实utf8截取很简单,这里记下来作为备忘 #-*- coding:utf8 -*- s = u'中文截取' s.decode('utf8')[0:3].encode('utf8') # 结果u'中文截取 希望本文所述对...

    桌面便笺-PNotes-中文插件

    中文插件不仅提供了菜单、按钮等界面元素的中文翻译,还确保了便签内容的正常显示,避免了乱码问题,提升了用户体验。 在办公环境中,PNotes中文插件的应用非常广泛。例如,你可以创建待办事项的便签,提醒会议时间...

    Doujin-moe-Android:同人萌的Android客户端

    该应用程式所供应的内容不适合未成年人观看,所有内容通过Jsoup 解析Doujin-Moe 官网获得,内容有任何异议或造成心理甚至生理上的问题均与本项目无关。 观看时请留意是否适用于当地法律法规。 ( &gt; _ &lt; ) #功能 1...

    记事本模拟器

    - 使用合适的编码避免乱码问题。 - 定期保存工作以防意外关闭或系统故障。 - 尽量从官方或可信赖的源获取软件,避免下载携带恶意软件的版本。 总的来说,记事本模拟器是一个实用的文本编辑工具,尤其适合需要...

    Java面试宝典2018

    - 字符串编码与乱码问题的处理。 - **常见面试题**: - `InputStream`与`OutputStream`的区别是什么? - 怎样避免文件读写中的乱码问题? - **1.3 异常** - **知识点概述**: - Java异常处理机制的基本概念。...

    订单实时提醒系统[提供ASP源码]

    提供简体中文、繁体中文(含转换机制,与简体版本交流不乱码)、英文等多语言版本,适合外企或者有跨国业务的企业交流使用。以后Web客户端还可以非常容易地内嵌,并统一到客户基于Web的信息平台上。17.*企业分支互联...

    大智慧股票本地数据读取接口(含源码)

    备忘 日线数据文件day.dat case DataTypes.hq: fileName = "DAY.DAT"; startAddress = 0x41000; blockSize = 8192; recordSize = 32; codeIsLong = false; fieldString = "dm,代码,code,10,0,0,;" + "rq,...

Global site tag (gtag.js) - Google Analytics