乱码

JSP页面显示中文乱码的解决方案

纵饮孤独 提交于 2019-11-30 21:44:25
在使用 JSP 的过程中,最使人头疼的一个问题就是中文乱码问题,要解决这个问题首先要知道问题出在哪里,然后再找解决方案,下面就列出了具体的步骤,只要按以下步骤去做,解决JSP页面显示 中文乱码 的问题就很容易了。 1,首先developer要明确自己为什么会遇到乱码,遇到什么样的乱码(无意义的符号还是一串问号或者其它什么东西)。新手遇到一堆很乱的字符时通常不知所措,最直接的反映就是打开google搜索“ java中文 ”(这个字符串在搜索引擎上的查询频率非常高),然后一个一个的去看别人的解决方法。这样做没有错,但是很难达到目的,原因下面会提到。总之,出现乱码的原因是非常多的,解决的方法也完全不一样,要解决问题必须先分析自己的”上下文环境”。 2,具体说来,需要哪些信息才能确定项目中的乱码的根源。 a,开发者所用的操作系统 b,j2ee容器的名称,版本 c,数据库的名称,版本(精确版本)以及jdbc驱动的版本 d,出现乱码的source code(比如是system out 出来的,还是jsp页面中的,如果是jsp中的,那么头部声明的情况也很重要) 3,如何初步分析乱码出现的原因。 有了上述的信息,基本上就可以发帖求助了,相信放到javaworld等论坛上,很快就会有高手给你提出有效的解决方案的。当然不能总靠发帖求助,也要试试自行解决问题。如何下手呢? a,分析一下你的“乱码

java通过mybatis往mysql数据库插入数据乱码

落爺英雄遲暮 提交于 2019-11-30 18:36:06
今天发现了一个问题,通过mybatis往数据库插入数据后,在数据库中所插入的中文乱码,开始以为是mysql编码设置问题,于是设置了mysql数据库的编码,但是不起作用,自己写的sql语句有中文插入也不会乱码,但是通过程序进去的为什么会乱码呢,于是想到了是mybatis的问题,在插入之前都是中文也不会乱码,后来发现原来是这个地方需要这样写: jdbc_url=jdbc:mysql://localhost:3306/mybatis ?useUnicode=true&characterEncoding=utf8 加上之后再次添加中文,没有问题了。如果数据源是配置在properties文件里的,可以直接用上面的,如果数据源是jndi,配置在context.xml中的, & 需要转义为 & 在网上找到一个解释: 这句话的作用是:指定字符的编码、解码格式。 例如:假设mysql数据库用的是GBK编码(也可能是其它,例如Ubuntu下就是latin1),而项目数据库用的是utf-8编码。这时候如果添加了 useUnicode=true&characterEncoding=UTF-8 ,那么作用有如下两个方面: 1. 存数据时: 数据库在存放项目数据的时候会先用UTF-8格式将数据解码成字节码,然后再将解码后的字节码重新使用GBK编码存放到数据库中。 2.取数据时: 在从数据库中取数据的时候

求指教!!!Hadoop的乱码问题如何解决?

此生再无相见时 提交于 2019-11-30 14:58:39
今天本来打算写java虚拟机的学习记录的。 但是在工作室里做任务时,出现了一个乱码问题,现在也还没有很好的解决办法,所以写出来让大家交流一下,以求好办法。 我们搭建了个由5台机器的Hadoop集群,并在之前已经做过统计分析日志记录的任务。由于日志内容都是在linux服务器( 代理服务器 )上生成的,用的编码都是UTF-8,而都是英文记录、源IP、目的IP、目的地址、访问时间等信息,有固定的格式,进行分析时都没有出现过很大的困难。 但是,现在则出现了比较难解决的问题? 问题:hadoop 集群处理 GBK 文件里出现乱码. 具体描述: 我们共12G多的文本文件,这些文件都是来自门户网站,使用很简单的爬虫抓取而来。 文件采用 GBK编码格式 保存。 我们的任务过程: (1)把文件从linux中上传到hadoop集群上( 此时的文件编码格式: GBK ) (2)使用登记分词器对文件进行分析,分解的出文章中的词汇,并保存到指定的文件中。 在查看hadoop集群的输出到指定文件的内容时,发现里面全都是乱码。 这是我们之前分析日志文件时没有出现过的。 在找问题的解决办法时, Google、百度、论坛都是说 同样的原因 :Hadoop在代码中设定的Charset为UTF-8,属于硬编码。 截图如下(点击图片链接到目标地址): 我们做了一次试验,使用UTF编码的中文文件则可以完成分析、分词过程。

解决dbeaver 乱码问题

爱⌒轻易说出口 提交于 2019-11-30 10:01:43
dbeaver 是一个非常好用的开源轻量级数据库连接工具,对于日常的使用真的已经非常够用了,而且因为是多语言支持中文,对于英文不好的同学帮助也非常大,其好用和简洁让我非常喜欢,特别是新版本之后,支持的数据库更多了,基本上下载一个dbeaver 就可以进行大部分的开发工作,但这个工具的受众还是比较小,网上相对资料较少。本文主要介绍如何解决dbeaver 乱码问题。 连接数据库后查询到的数据是乱码的时候。 步骤一:点击右键数据库编辑连接 步骤二:直接在driver properties中找到charset进行设置,这里的编码值看你的数据库设置的哪种编码哦 确认后重新连接查询,可以看到结果 来源: oschina 链接: https://my.oschina.net/u/2652412/blog/752323

servlet 中文乱码问题及解决方案

我只是一个虾纸丫 提交于 2019-11-30 10:01:33
一、常识了解 1.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立; 2.java.nio.charset.Charset.defaultCharset() 获得平台默认字符编码; 3.getBytes() 是通过平台默认字符集进行编码; 二、中文乱码出现 在学习任何一门技术时,经常会有初学者遇到中文乱码问题,比如MySQL,是因为在安装时没有设置;而在Servlet中,也会遇到中文乱码问题; 比如: OutputStream out = response.getOutputStream(); out.write(String ); 输出中文时可能会出现乱码; 比如: [java] view plain copy protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { OutputStream out = response.getOutputStream(); String data = "博客" ; out.write(data.getBytes( "UTF-8" )); } 输出乱码的问题是程序用UTF-8编码,而浏览器用GB2312解码,因此会出现乱码;

在 vm 下安装的 redHat 5 中文显示(方块乱码)及小企鹅输入法

梦想的初衷 提交于 2019-11-30 04:17:36
在 vm 下安装的 redHat 5 默认安装成的英文, 现在将它改成 中文 并安装 小企鹅输入法 一.将redHat 5 设置成中文环境(解决方块乱码问题) 1.从网上下载 fonts-chinese-3.02-9.6.el5.noarch.rpm fonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm 两个文件,给出下载地址 (直接 google): http://pkgs.org/centos-5-rhel-5/centos-rhel-i386/fonts-chinese-3.02-12.el5.noarch.rpm/download/ http://rpm.pbone.net/index.php3/stat/4/idpl/8079316/com/fonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm.html 2.拷贝到 redHat 5中,双击运行他们(或用命令) 3.点击系统工具栏->系统->管理->语言,更改为chinese(PRC) ,重启,安装成功 二.安装小企鹅输入法(中文) 1.下载 小企鹅输入法: http://ishare.sina.cn/dintro.php?id=16309443 2.拷贝到 redHat 5 中, 双击运行 3.配置: a.进入 root 用户 (su -) b.进入/etc

解决Linux上的Java Web项目(日志)乱码问题

淺唱寂寞╮ 提交于 2019-11-29 18:04:56
前段时间,公司换了新服务器,但是所有的服务器均出现了乱码,当然这种情况后来也出现在了部署到点上的项目中。 项目经理让我着手解决这个问题,我在网上看了很多资料,说得五花八门的,不过我最后通过其中一种方法完美解决了Linux服务器上JAVA WEB项目乱码的问题,当然,主要是日志乱码。 很简单,如果你的是Tomcat服务器,在Linux服务器上找到你的Tomcat服务器下的bin目录中的 Catalina.sh文件,编辑它,在里面的 JAVA_OPTS变量中添加“ -Dfile.encoding=GBK -Dsun.jnu.encoding=GBK ”,记住,一定是GBK的 如果是Jboss服务器,那么也是在bin目录下,但是是修改run.conf文件,也是在 JAVA_OPTS变量中添加“-Dfile.encoding=GBK -Dsun.jnu.encoding=GBK ” 。 修改好后,保存,重启服务器,搞定。 来源: oschina 链接: https://my.oschina.net/u/1158633/blog/212150

在cmd窗口中显示UTF-8字符

放肆的年华 提交于 2019-11-29 17:30:24
有这么一个文件,它在Eclipse属性中看到是UTF8编码的,里面包含了中文: 但是当在Windows控制台中查看这个文件(为了方便,我将文件拷贝到桌面了)的时候,就是乱码了: 那如何让cmd可以显示这些UTF8编码的字符呢?这里需要先了解些相关内容: chcp命令 chcp是MS DOS中的命令,用来 显示或设置活动代码页编号 的。用法是: C:\Users\002778\Desktop>chcp /? 显示或设置活动代码页编号。 CHCP [nnn] nnn 指定代码页编号。 不带参数键入 CHCP 以显示活动代码页编号。 比如,在默认的cmd窗口中,我们输入chcp,显示的将类似: C:\Users\002778\Desktop>chcp 活动代码页: 936 这里的936表示当前使用的是简体中文(GB2312)编码。 更多代码页编号请查阅 这里 。 UTF8编码 你也需要了解编码的一些知识,为了完成支持UTF8的工作,你至少需要知道UTF8代码页的编号:65001。更多关于编码的内容,这里不赘述,请自行查找相关内容。 有这两个知识点,接下来,让cmd支持UTF8就变得容易了。 1. 运行cmd; 2. 输入 chcp,回车查看当前的编码; 3. 输入chcp 65001,将输出: Active code page: 65001 C:\Users\002778\Desktop

MySQL中UTF8编码的数据在cmd下乱码

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-29 17:29:46
花了一下午,解决MySQL在Windows的cmd下中文乱码的问题。 mysql> use abc; Database changed mysql> select * from school; +----------+--------------------+-------------------------------------------+ | schoolid | name | address | +----------+--------------------+-------------------------------------------+ | 1 | 鍖椾含澶у | 鍖椾含甯備腑鍏虫潙鍖楀ぇ琛?7鍙? | 2 | 娓呭崕澶у | 鍖椾含甯傛捣娣€鍖轰腑鍏虫潙澶ц | 3 | 鍗椾含澶у | 姹熻嫃鐪佸崡浜競榧撴ゼ鍖烘眽鍙h矾22鍙? | 4 | 涓浗浜烘皯澶у | 鍖椾含甯傛捣娣€鍖轰腑鍏虫潙澶ц59鍙? | 5 | 鍘﹂棬澶у | 绂忓缓鐪佸帵闂ㄥ競鎬濇槑鍗楄矾422鍙? +----------+--------------------+-------------------------------------------+ 5 rows in set (0.00 sec) 数据是通过SQL文件导入的,这个SQL文件也是UTF8编码的:

Java 读取、写入文件——解决乱码问题

心已入冬 提交于 2019-11-29 13:38:59
读取文件流时,经常会遇到乱码的现象,造成乱码的原因当然不可能是一个,这里主要介绍因为文件编码格式而导致的乱码的问题。首先,明确一点,文本文件与二进制文件的概念与差异。 文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码、ANSI编码等等。二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码。) 因此可以看出文本文件基本上是定长编码的(也有非定长的编码如UTF-8)。而二进制文件可看成是变长编码的,因为是值编码嘛,多少个比特代表一个值,完全由你决定。 对于二进制文件,是千万不能使用字符串的,因为字符串默认初始化时会使用系统默认编码,然而,二进制文件因为自定义编码自然与固定格式的编码会有所冲突,所以对于二进制的文件只能采用字节流读取、操作、写入。 对于文本文件,因为编码固定,所以只要在读取文件之前,采用文件自身的编码格式解析文件,然后获取字节,再然后,通过指定格式初始化字符串,那么得到的文本是不会乱码的。虽然,二进制文件也可以获取到它的文本编码格式,但是那是不准确的,所以不能同日而语。 具体操作如下: 1)获取文本文件的格式 public static String getFileEncode(String path) { String charset ="asci"; byte[] first3Bytes