java中文处理
acjspbbs采用的字符编码是GBK,我采用的是WIN2k系统,正常来说应该是水到渠成的,但是,竟然被我发现,它的javabean中保存入数据库语句是使用的是ISO8859-1编码,直接导致所以从数据库取出的资料全部乱码,包括:论坛名等常量、用户发的帖子标题和内容等等。
其实,java系统内部会把全部的字符串统一使用UTF-8编码,而在内部转化之前会使用操作系统默认的编码,其中包括输入和输出。要想不乱码,只需要“统一java系统的输入、输出以及操作系统的字符集”,这也是处理java系统汉字的一个原则。原因是由于java的跨平台特性,字符集必须由具体的操作系统给出。
由此可以得到一个最简单的解决jsp乱码的办法,其中主要需要把握三个环节:
1、开发和编译代码时就指定一个字符集,比如ISO-8859-1(西方的系统多数使用这个)
2、确定操作系统的字符集跟1统一,比如也用ISO-8859-1,这样的OS有很多,linux就是啦
3、如果开发jsp,每个页面都明确指定字符集:
<%@ page contentType="text/html;charSet=ISO8859-1" %>
这样就达到了前面的目标,统一了三者的字符编码。
这样的系统虽然很好,没有乱码问题,但是显然是以破坏跨平台特性为代价换取来的。想要根本解决问题,看来只有将java系统统一为UTF-8编码,这需要找到所有的出入口。
具体需要注意以下几个环节:
1、开发和编译时候指定字符集为UTF-8
2、用过滤器将所有请求转为UTF-8字符集编码
如果是用一个servlet控制分配的就在servlet的filter中写
request.setCharacterEncoding("UTF-8")
如果是用jsp页面,就在头部定义
<%@ page contentType="text/html;charSet=UTF-8" %>
3、在所有的输出上包括数据库连接上都指定使用字符集UTF-8
另外:如果你在做二次开放,就需要重新编译包,指定使用UTF-8编码
附:在编译时指定字符集的语法是javac -encoding <encoding> <sourcefile>
说明:这里很多观点是引用他人的,但是我自己使用过,是绝对有效的解决办法。
分享到:
相关推荐
Java代码生成汉字库是一个涉及到字符编码、汉字处理和随机生成技术的编程任务。在这个项目中,开发者使用Java语言创建了一个程序,能够按照GB2312、GBK、Unicode和UTF-8这四种常见的汉字编码标准生成汉字库。下面将...
在Java编程语言中,处理中文字符或任何非英文字符集时,编码问题常常成为开发者面临的一大挑战。不当的字符编码转换可能导致乱码出现,影响用户体验和数据的正确性。本文将深入探讨Java处理中文问题的核心代码,特别...
在Java编程语言中,对包含中文、数字和字母的数据进行排序是一项常见的任务。这个场景下,我们关注的是如何实现一个自定义的排序规则,按照数字、字母和汉字的顺序进行排列。以下是对这一主题的详细解释。 首先,...
在Java编程语言中,将汉字转换为拼音是一项常见的任务,特别是在处理中文文本、搜索引擎优化、语音合成或自然语言处理等领域。这个"Java汉字转拼音(支持多音字)"的主题涉及了如何在Java环境中实现这一功能,特别是...
### Java中文字符处理知识点 #### 一、判断字符串是否全为汉字 为了判断一个字符串是否完全由汉字组成,可以通过正则表达式实现。具体做法是使用Unicode编码范围内的汉字字符来构建一个匹配模式。 **代码示例:**...
在Java编程领域,汉字笔画排序是一项特殊的需求,特别是在数据处理和信息检索中。这个主题主要涉及如何根据汉字的笔画数量对汉字进行排序。在给出的标题"java汉字笔画排序2例子及jar包"中,我们可以推断这是一个关于...
Java汉字笔画排序是一个在中文处理领域常见的需求,特别是在数据整理、信息检索或者用户界面排序等方面。本项目提供的"java汉字笔画排序2源代码jar包"是一个优化过的解决方案,旨在减少内存占用并提高排序效率。 ...
在Java编程语言中,中文转数字是一个常见的需求,特别是在处理汉字数字表示的场合,比如中文日期、货币或者传统文化中的数字表达。中文数字的转换涉及到字符识别、数字映射以及字符串处理等多个方面。以下是对这个...
Java汉字笔画排序是一种在处理汉字时按照汉字的笔画数量进行排序的技术。这个主题主要涉及到计算机科学中的数据结构和算法应用,特别是排序算法。在中文环境中,有时我们需要按照汉字的笔画数量来对汉字进行排序,这...
在“java中文繁体转中文简体”这个主题中,我们主要讨论的是如何利用Java技术来实现中文繁体字到简体字的转换。 首先,我们需要了解中文字符集。在计算机中,中文字符的表示通常使用Unicode编码,它包含了繁体字和...
java.awt.event 提供处理由 AWT 组件所激发的各类事件的接口和类。 java.awt.font 提供与字体相关的类和接口。 java.awt.geom 提供用于在与二维几何形状相关的对象上定义和执行操作的 Java 2D 类。 java.awt.im ...
在Java编程语言中,Unicode编码是一种广泛使用的字符集,它包含了世界上几乎所有的文字,包括中文。Unicode使得在程序中处理不同语言的文本变得...通过上述方法,你可以有效地在Java程序中处理中文和其他语言的文本。
Java代码实现随机生成汉字的方法 Java代码实现随机生成汉字的方法是指利用Java语言编写的程序来随机生成汉字。该方法可以生成随机的汉字,满足特定的需求。 背景知识 -------- GB 2312-80 是中国国家标准简体中文...
在Java编程语言中,汉字转拼音是一项常见的需求,特别是在处理中文数据、搜索引擎优化或文本处理等领域。本篇文章将深入探讨如何使用Java实现汉字转拼音的功能,包括获取汉字的全拼和首字母。 首先,我们需要理解...
根据提供的文件信息,本文将详细解析如何通过Java编程语言实现计算汉字笔画数的方法,并对代码中的关键逻辑进行深入分析。 ### 概述 在Java中实现计算汉字笔画数的功能,主要涉及到对汉字编码的理解以及如何根据...
Java中文解释的API是针对Java开发者的极其重要的参考资料,它为Java API提供了详细的中文注解,使得开发者在阅读和理解API时能更加便捷,尤其对于非英语为母语的程序员来说,这是一个非常实用的工具。Java API包含了...
Java 信息处理是一个广泛的概念,它涵盖了使用Java编程语言对数据进行各种操作的过程,包括但不限于数据获取、存储、分析、转换、加密以及展示等。在Java中,信息处理是通过一系列核心类库和API实现的,这些工具为...
js 中乱码处理法方式 encodeURIComponent(encodeURIComponent(customerAddress)) decodeURIComponent(customerName) js到java encodeURI(url) String qijuType= new String(request.getParameter( (...
在Java编程中,处理中文路径问题是一个常见的挑战,尤其是在Windows操作系统环境下。中文字符在路径中可能会引起编码问题,导致程序无法正确读取或写入文件。这个问题主要涉及到字符编码、文件I/O操作以及系统环境的...