本篇问题域被定义为 -GWA2 (-吉娃兔)的 -Java 版本的多语言的编码/乱码问题,也包括中文的编码和乱码问题。当然,也具有普遍意义,包括所有Java/JSP应用的中文编码、乱码问题。

这次距离上次写Blog间隔的时间较长,主要是由于发布 -GWA2 Java版本占用了大量的业余时间(包括熬夜),所以拖了一些时间,中间的探索过程(如对反射、序列化的相关思考和实验)还是有值得记录的地方,今后慢慢整理。其中之一就是Java的字符编码,或者再收窄成Java应用的中文字符乱码问题。 网上搜索Java中文乱码的帖子有很多,包括我自己几年前也写作过,如在2009-12-10 17:05:14发布的“

”,谈了在一个Java实现的游戏项目中的中文编码问题及相关方面的知识和问题,这次之所以重新谈,是立场发送了改变,不只是解决问题,而是以更好的方式解决问题——极力避免将宝贵的计算资源用在字符转码上,尽量不在应用代码成使用字符转码的方法,不做字符转码的事情。 要这样做就是创造统一的运行时环境,包括输入与输出,Java源码的i18n的编码是unicode,我们选择的统一的运行时字符编码是UTF-8. 要实现这一目标设计到Webserver(App container)、Java类、JSP、HTTP和数据库后台、HTML前端等,下面分别记录,以形成可供参考的文档。

0. Java虚拟机启动时(Webserver、App container等) 在命令行带入指定字符编码的启动参数 -Dfile.encoding=UTF8

1. JSP文件页面头部时 设置JSP页面的语言及编码 很多时候,要求这个语句放JSP文件的第一行.

2. JSP初始化运行时 加入对语言环境变量的指定,调用设置语句 System.setProperty(“sun.jnu.encoding”, “UTF-8”); System.setProperty(“file.encoding”, “UTF-8”); request.setCharacterEncoding(“UTF-8”);

3. JSP对输出内容做字符编码控制 response.setCharacterEncoding(“utf-8”); response.setContentType(“text/html;charset=utf-8”);

4. 输出内容编码的指定 如果输出的是HTML或者XML需要在相应的文档里显示地声明字符编码是UTF-8, 如在HTML中 或者在XML中

经过上述7个步骤的设置,基本的UTF-8环境应该已经统一起来了。然而,如果内容来自数据库(以MySQL为例),字符编码仍然是个不小的问题。如果是这样,需要在JAVA连接数据库时和进行读写时进行相应的操作。当然前提是,数据库及数据表也是UTF-8的编码。 基本上可以确定,读写数据库,如果不进行字符转码且操作正常,需要在如下四个方面取得高度地一致。 Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 对应地在JSP中进行补救的相应措施包括:

5.  连接数据库时 在JDBC等驱动加载时,增加字符编码指定参数 setCharacterEncoding=utf8 在进行创建连接进行查询时,首先执行SQL语句 set names ‘utf8’ 经此6个方面的设置,大致成了。

-GWA2 是 General Web Application Architecture, 通用网络应用(软件程序)架构,也提供了 -PHP 对应的版本。   附记及扩展:

java设置中文语言编码_-GWA2 Java版本的i18n/中文编码/乱码问题相关推荐

  1. java 设置环境变量生效_配置java环境变量后没有生效的解决办法

    参考文章:https://blog.csdn.net/tooky_poom/article/details/60768458 系统安装了jdk1.7,环境变量正常,但是安装jdk1.8后,修改环境变量 ...

  2. java 设置pdf页面大小_通过Java实现对PDF页面的详细设置

    前言 下面的示例将介绍通过Java编程来对PDF页面进行个性化设置的方法,包括设置页面大小.页边距.纸张方向.页面旋转等.这里有如下多种页面大小尺寸可供选择: 同时,设置文档内容旋转时,可支持如下角度 ...

  3. java设置手机后台进程限制_让java程序在后台一直执行(例如putty关闭后后台程序继续运行)...

    如果在终端中执行java -jar xxx.jar&命令,当终端关闭时,xxx.jar也会同时结束运行,但是如果执行nohup java -jar xxx.jar&命令,则程序会在后台 ...

  4. 【源码+图片素材】Java王者荣耀游戏开发_开发Java游戏项目【王者荣耀】1天搞定!!!腾讯游戏_Java课程设计_Java实战项目_Java初级项目

    王者荣耀是当下热门手游之一,小伙伴们是否想过如何制作一款属于自己的王者荣耀游戏呢? 本课程讲解了一个王者荣耀游戏的详细编写流程,即使你是刚入门Java的新手,只要你简单掌握了该游戏所需要的JavaSE ...

  5. Linux怎么设置中文语言? centos中文乱码的解决办法

    怎么设置Linux系统中文语言?是很多小伙伴在开始使用Linux的时候,都会遇到一个问题,就是终端输入命令回显的时候中文显示乱码.出现这个情况一般是由于没有安装中文语言包,或者设置的默认语言有问题导致 ...

  6. java 将中文字符转为英文,java 将中文字符号转为英文

    java 将中文字符转为英文,java 将中文字符号转为英文 package test;import java.io.UnsupportedEncodingException;public class ...

  7. photos怎么改成中文_Win10怎么设置中文语言?Win10设置语言为中文的方法图解

    有部分升级windows 10操作系统的伙伴们发现自己的界面变成英文的了,那么,Win10怎么设置中文语言呢?针对此问题,本文就为大家图文介绍将win10语言设置为中文的方法,有兴趣的朋友们可以了解下 ...

  8. ubuntu怎么设置系统语言英文_Ubuntu系统设置中文语言的方法教程,Ubuntu系统怎么设置中文语言?...

    最近有Ubuntu系统用户反映,由于系统界面的语言都是英文,而用户又不懂英文,这让用户非常苦恼.其实,如果不懂英文的话,我们可以将Ubuntu系统的语言设置为中文.那么,Ubuntu系统怎么设置中文语 ...

  9. win10怎么设置计算机语言,Win10系统怎么设置中文语言_windows10怎么把系统语言设置成中文...

    有些用户在安装win10系统之后,可能会发现默认语言是英文版的,但是对于不熟悉英文的用户们来说这就很困扰了,那么要怎么把系统语言设置成中文呢,方法不难,这就给大家带来Win10系统设置中文语言的详细步 ...

最新文章

  1. Atitit.软件GUI按钮与仪表盘--db数据库区--导入mysql sql错误的解决之道
  2. Codeforces 1009D:Relatively Prime Graph
  3. 手写简版spring --10--容器事件和事件监听器
  4. 经典C语言程序100例之八零
  5. php7安装kafka扩展(已经测试)
  6. V8 Promise源码全面解读
  7. php rpc调用,PHP 通过 JSON-RPC 调用实现以太坊交互
  8. java当前4中引用_Java的四种引用
  9. 爬虫-post请求练习-百度翻译爬虫-智能的关联搜索不完整词的猜词搜索
  10. Navicat Premium 安装
  11. maven打本地JAR包
  12. docx文档怎么排列图片_格式转换太麻烦?仅需一行命令,搞定图片、音频、视频、文本批量转换!...
  13. 图说 WebAssembly(二):JIT 编译器
  14. Python基础——if else与if elif else条件判断
  15. Android Open Source Projects(汇总与整理)
  16. HTML:网页设计案例3
  17. 如何收割流量红利?UB Store的直播电商“三宝”
  18. Opencv 关于Kmeans算法
  19. 16g电脑内存有什么好处_16G电脑运行内存可以达到什么样子。
  20. 即时通讯系统android,基于android系统的即时通讯系统设计与实现

热门文章

  1. 抽象类和接口的深度解析
  2. 微信小程序-获取微信收货地址
  3. 孩子不想上学家长怎么做
  4. 可以检测手机帧率和温度的软件_主流手机芯片性能排行,看看哪款可以满足你!...
  5. 小男孩与苹果树的故事(中英互译)
  6. 大数据运维的工作职责
  7. 《微信公众平台与小程序开发——从零搭建整套系统》第5章 基于CodeIgniter的微信公众平台开发框架
  8. Android渲染画面,Android系统图像渲染简介
  9. Node的cookie和session
  10. js的自定义构造函数和工厂模式的区别