Java 乱码总结

1.URL乱码

有的是,不可避免要在URL上传中文,用一些框架(spring MVC,struts)可以解决。但是我们也可以自己手动解决。

String url = "http://www.softbeta.iteye.com?name=小武";
// url编码
url = "http://www.softbeta.iteye.com?name=" + java.net.URLEncoder.encode("小武");
System.out.println("url:" + url);
 // url解码
url = "http://www.softbeta.iteye.com?name=" + java.net.URLDecoder.decode("小武");
System.out.println("url:" + url);

encode(String s) 和 decode(String s)方法会采用系统的默认编码,已标记为@deprecated 取代为带编码的方法encode(String s, String enc),decode(String s, String enc)。 

String url = "http://www.softbeta.iteye.com?name=小武";
// url编码
url = "http://www.softbeta.iteye.com?name=" + java.net.URLEncoder.encode("小武","utf-8");
System.out.println("url:" + url);
// url解码
url = "http://www.softbeta.iteye.com?name=" + java.net.URLDecoder.decode("小武","utf-8");
System.out.println("url:" + url);

 url encode和decode在前端js也有很好的支持,这样能方便我们处理请求和响应。

2.JSP乱码

在基于框架开发中,JSP乱码基本上由框架解决,但是有些地方我们的编码需要统一。

在JSP文件头,一般加入:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

charset=UTF-8的作用是指定JSP向客户端输出的编码方式为"UTF-8";

pageEncoding="UTF-8",为了让JSP引擎能正确地解码含有中文字符的JSP页面;

如果对请求编码:

request.setCharacterEncoding("UTF-8");

 还有一种是在web容器中设置编码。如Tomcat,如果上面的方法都能解决乱码,可以在server.xml修改URIEncoding:

<Connector port="8088" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="utf-8"/>

3.打包文件(zip)乱码 

如果用原生的java.util.zip.ZipOutputStream进行文件打包,当文件名出现中文的时候,会出现乱码,目前还没有很好的解决方法,除非修改这个类的代码,然后重新打包。

org.apache.tools.zip.ZipOutputStream用这个类进行打包可以设置编码,有效的解决中文问题。

ZipOutputStream zos = new ZipOutputStream(os);
zos.setEncoding("GBK");
...
zos.flush();
zos.close();

4.其他情况通用解决

像文件乱码,数据库乱码...等,很多时候是方法没有用对,字符集设置不统一或没有用对。对文件读写,用正确的流,合适的编码,一般不会出问题。数据库也是一样,数据库的编码也后台处理程序编码要统一。但是还是有一些情况我们不能成功解决乱码问题,这是只有强制转码了。 

/**
 * 转码
 * 
 * @author oliver
 * @created 2011-10-13
 *
 * @param str 需要转码的字符串
 * @param originEncode 原字符串编码
 * @param destEncode 需要转向的编码
 * @return
 * @throws UnsupportedEncodingException
 */
public static String transcoding(String str,String originEncode,String destEncode) throws UnsupportedEncodingException{
	if(str==null || str.trim()==""){
		return str;
	}
	return new String(str.getBytes(originEncode),destEncode);
}

如果你知道乱码字符串以前用的编码,那么可以用上面的方法解决乱码。

在java.nio包中,也有类似编码解码的方法。

String name="中文";
Charset ct = Charset.forName("utf-8");
ByteBuffer encode = ct.encode(name);
name=ct.decode(encode).toString();

总之,乱码问题很多时候是由于我们的方法,工具没有选择正确,或者编码不统一。如果真的没有其他好的办法,可以自己写工具强制转码。

 

 

 

 

 

YOLOv8实战:5分钟搞定Windows环境下的目标检测模型部署(附常见报错解决方案) 本文详细介绍了在Windows环境下快速部署YOLOv8目标检测模型的实战指南,包括环境配置、模型加载、快速验证及常见报错解决方案。通过5分钟快速入门教程,帮助开发者高效实现计算机视觉应用,特别适合需要快速上手的AI开发者。 阅读详情

相关推荐

DrawCall、Batches、SetPassCalls的区别和联系

一、DrawCall、Batches、SetPassCalls的基本理解 我们先从图形渲染的角度对这些概念做一个基本的理解。 1.1 DrawCall DrawCall实际上指的是一次图形渲染接口的调用,比如OpenGL的glDrawArrays或者glDrawElements的一次调用,以及DirectX的DrawPrimitive或者DrawIndexedPrimitive。因此,DrawCall可以简单理解为一次渲染指令调用。 1.2 Batches 我们知道,在调用DrawCall之前,需要设置渲染

远行's Blog 6378

Java乱码总结

昨天项目遇到了乱码问题,在自己电脑上是没问题的然而在服务器上就出现的乱码的问题,所以就以乱码为点来仔细的了解一下Java中的乱码。 先简单了解一下java的字符串的编码到存储的过程: java在字符串中统一用Unicode表示。 对于任意一个字符串:String string = “测试字符串”; 如果源文件是GBK编码,操作系统默认环境编码也为GBK,那么编译的时候,JVM将按照GBK编...

Mr.小强的博客 7013

英语语法-句法

摘要:本文系统梳理了英语句法知识,重点解析了五种基本句型及其扩展结构。内容包括句子类型(陈述句、疑问句、祈使句、感叹句)、复合句构成(从句分类与连词使用)、特殊句型(倒装、强调、引语转换)等。特别强调句子成分分析技巧,指出每种句子成分可由不同词法单元充当,需掌握成分识别与划分方法。文章还提供了往期语法系列链接,形成完整的英语语法学习体系,帮助读者建立从词法到句法的系统认知框架。

STCNXPARM的博客 8817

java怎么解决乱码_java中乱码怎么解决

java中乱码怎么解决发布时间:2020-04-16 14:33:51来源:亿速云阅读:166作者:小新java中乱码怎么解决?很多人都不太了解,今天小编为了让大家更加了解java中乱码的解决办法,所以给大家总结了以下内容,一起往下看吧。java中乱码的解决办法对于Java,由于默认的编码方式是UNICODE,所以用中文也易出问题,常见的解决是:String s2 = new String(s1....

weixin_31458015的博客 3338

S32K344 Bootloader实战:一个按键实现从Boot到App的无缝跳转(附完整代码)

本文详细介绍了基于NXP S32K344微控制器的Bootloader开发实战,重点解析如何通过一个硬件按键实现从Boot到App的可靠跳转。内容涵盖内存分区规划、中断向量表重映射、外设初始状态管理等核心要素,并提供了完整的代码示例和调试技巧,适用于汽车电子和工业控制等高可靠性应用场景。

weixin_29192365的博客 309

Datalog语言详解

Datalog是一种声明式逻辑编程语言,起源于数据库理论和逻辑编程领域。作为Prolog的子集,它专注于递归查询和推理,通过定义事实和规则来描述数据关系而非计算步骤。Datalog的关键特性包括规则安全、递归、分层否定和扩展聚合功能,保证了程序的终止性和高效性。相较于SQL,Datalog更擅长处理递归查询;相比Prolog,它更注重数据库友好性。Datalog在程序分析、知识图谱、网络安全等领域有广泛应用,其声明式特性使代码简洁易维护,但同时也面临生态系统小、性能调试难等挑战。现代工具如Soufflé、D

bulita great world 1847

java数组乱码_关于Java乱码

乱码本质:读取二进制时采用的编码与最初将字符转成二进制时的编码不一致。编码(获得二进制数组的过程)时不抛出异常,数据就不会被破坏。Java关于乱码(MessyCode)问题Java使用的是Unicode编码;String str = "双引号里是字符串字面量";str在JVM中的编码是Unicode编码表示的;除了这种程序内部的数据之外,还常常从外部获取各种各样的数据让程序处理,比如文件、数据库,...

weixin_39709178的博客 1315

IPCP(IP Control Protocol,IP控制协议)

IPCP(IP Control Protocol,IP控制协议)

天赐好车的博客 757

java乱码问题解决总结

java乱码总结

weixin_52251389的博客 13万+

国科大学习资料--图像处理(彭思龙、杨戈)--2020年期末考试题解析(学长整理分析)

在对20年卷子分析前,先看看19年卷子的解析(后面有20年的变化,由于从核心课调整到了普及课,20年的卷子相对简单,但是还是有很多细节) 解析:(字写的不好别嫌弃!!!!) 20年的卷子 第一题:和19年基本一致,但是加了高斯核计算费用,要算一个节省计算成本比率,所以去多看看PPT 第二题:和19年基本一致,加了证明两个高斯卷积仍然是高斯卷积,相当于19年题2和3结合 第三题:采样定理,和19年基本一致,但要注意加了证明 第四题:考了形态学提取图像边界 第五题:直方图,和19年一

无名何许人的博客 4364

Python 实现生命游戏及进化模拟完整指南

生命模拟是进化计算的一个特定子集,模拟了自然界中所观察到的自然过程,例如粒子或鸟群的聚集方式。生命模拟只是用来探索和优化问题的模拟形式之一,还有很多其他形式的模拟,可以更好地建模各种过程,但它们都源于康威生命游戏 (Conway’s Game of Life)。在本节中,我们将介绍生命模拟的基本概念,并使用 Python 实现康威生命游戏。

盼小辉丶的博客 7万+

java为什么会乱码_Java中文乱码原因

Java中文乱码原因Java在中文环境中乱码无处不在,而且出现的时间和位置也包涵广泛,具体的解决方法也是千奇百怪。但是如果能理清其中的脉络,理解字符处 理的过程,对于解决问题很有指导意义,不至于解决了问题也不知道为什么。其实,原因不外乎出在String输入时和输出时。首先,Java中的任何String都是以UNICODE格式存在的。很多人因为在GBK环境中使用String,会误以为String是G...

weixin_39951419的博客 2222

【ComfyUI】Flux 图像扩展

本文介绍了一个基于Flux扩图技术的ComfyUI工作流,能够智能扩展图像尺寸并保持内容连贯性。该流程通过扩散模型与条件编码的结合,对图像边缘进行语义填充生成,适用于艺术创作、海报设计等场景。工作流包含图像加载、外扩填充、文本编码、扩散采样等核心节点,采用Flux1-fill-dev等专业模型确保生成质量。演示效果显示,系统能自然延伸原图内容,保持风格统一。该技术可广泛应用于插画扩展、摄影增强、游戏场景构建等领域,显著提升创意工作效率。

Mr数据杨 930

java乱码

自从接触Java和JSP以来,就不断与Java的中文乱码问题打交道,现在终于得到了彻底的解决,现将我们的解决心得与大家共享。 一、Java中文问题的由来 Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和JSP文件本身编译时产生的乱码问题和Java程序于其他媒介交互产生的乱码问题。 首先Java(...

开发笔记 135

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

java字符串乱码_java字符乱码

在java中处理字符时,经常会发生乱码,而主要出现的地方在读取文本文件时发生,或者是写入到文件中,在其他地方打开乱码。如下例子:1 BufferedReader br = null;2 try{3 br = new BufferedReader(new InputStreamReader(newFileInputStream(4 ...

weixin_32108979的博客 1232

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

java接口乱码怎么解决_Java乱码解决

简述乱码是JAVA开发时经常遇到的问题。主要出现在四种情况:1.系统接口之间2.POST提交数据3.GET提交数据和URL路径4.页面乱码系统接口之间乱码需要双方定义编码方式。例如:GBK(以下都以GBK为例)。发送的时候将String按GBK转换为了字节码out.write(loginStr.get(0).getBytes(...

weixin_39878646的博客 1719

Java乱码问题(乱码是如何产生的,怎么解决)

Java乱码问题(如何产生,怎么解决)背景思考乱码产生的原理例子解决方案Step1: 文件编码设置Step2: 编译器编码设置Step3: JVM读取class文件的编码配置结束语 背景 最近因公司项目需要,使用javaFx开发了一个桌面客户端。因为客户群都是windows桌面,所以我采用了maven的javapackager插件将其打包成exe安装文件。 然后,就遇到了中文乱码问题,下意识的百度了一下,看到几种方法,总结下来有以下几种: idea的encoding配置(有说是全部改成utf8的成功的..

大胡子老哥的博客 4366

java中中文显示乱码_java中显示中文乱码解决方法

java显示乱码解决方法:1、utf8解决JSP中文乱码问题一般说来在每个页面的开始处,加入:charset=UTF-8的作用是指定JSP向客户端输出的编码方式为“UTF-8”;pageEncoding="UTF-8",为了让JSP引擎能正确地解码含有中文字符的JSP页面,这在LINUX中很有效;request.setCharacterEncoding("UTF-8");是对请求进行了中文编码。有...

weixin_29962473的博客 1万+

Java如何解决乱码问题

java在字符串中统一用Unicode表示。 对于任意一个字符串:String string = “测试字符串”; 如果源文件是GBK编码,操作系统默认环境编码也为GBK,那么编译的时候,JVM将按照GBK编码将字节数组解析为字符,然后将字符转换为Unicode格式的字节数组,作为内部存储(字节数组→字符→Unicode字节数组) 当打印这个字符串时,JVM根据操作系统本地的语言环境,将Unico...

zhaohong_bo的专栏 2万+

java ajax 返回 乱码,java ajax 返回 乱码

java ajax 返回 乱码[2021-01-31 23:12:50]简介:解决java的ajax提交返回值中文乱码的方法:1、在RequestMapping的并发配置中加代码【products=text/html;charset=UTF-8】;2、在文件中【mvc:annotation-driven】中添加代码。php应用ajax返回乱码的解决办法:1、把接收到的数据再重新转回为GBK,代...

weixin_39631899的博客 584

java 对象乱码_解决java对象乱码的问题

解决java对象乱码的问题发布时间:2020-08-18 10:08:12来源:亿速云阅读:92作者:小新小编给大家分享一下解决java对象乱码的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!java对象乱码的解决办法:1、文件下载乱码时,下载响应头,filename要用URLEncoding进行编码,才能进行HTT...

weixin_39913117的博客 877

java中文乱码怎么解决_java中文乱码解决总结

为什么说乱码是中国程序员无法避免的话题呢?这个首先要从编码机制上说起,大家都是中文和英文的编码格式不是一样,解码也是不一样的!如果中国的程序员不会遇到乱码,那么只有使用汉语编程。汉语编程是怎么回事我也不大清楚,应该是前年吧,我一朋友给我介绍汉语编程,怎么不错不错?当时因为学习忙没去关注这个,等我闲了,那个朋友不弄这个,问他他也不说不大清楚,最后自己对这个学习也不了了之了。今天我写这个不是讲解中英文...

weixin_35774446的博客 10万+

java中文输出乱码_java汉字乱码解决办法

自从接触Java和JSP以来,就不断与Java的中文乱码问题打交道,现在终于得到了彻底的解决,现将我们的解决心得与大家共享。一、Java中文问题的由来Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和JSP文件本身编译时产生的乱码问题和Java程序于其他媒介交互产生的乱码问题。首先Java(包括J...

weixin_29502483的博客 3万+

java hssfworkbook 乱码_java各种乱码汇总

1.Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些Asp网页点击的结果却是下载到的一个文件或一张图片的原因。 ContentType属性指定响应的HTTP内容类型。如果未指定 ContentType,默认为TEXT/HTML。 下面的示例将 ContentTyp...

weixin_35763448的博客 3421

java字符乱码

在java中处理字符时,经常会发生乱码,而主要出现的地方在读取文本文件时发生,或者是写入到文件中,在其他地方打开乱码。 如下例子: 1 BufferedReader br = null; 2 try { 3 br = new BufferedReader(new InputStreamReader(new File...

anya7667的博客 244

java 读写乱码_java读写文件出现乱码的解决方法

java读写文件出现乱码的解决方法发布时间:2020-06-18 11:16:42来源:亿速云阅读:101作者:Leah这篇文章给大家分享的是java读写文件出现乱码的解决方法,如果你刚好也有这个困惑,不妨参照这篇文章。阅读完整文相信大家能解决这个问题。1、读文件:/*** 读取文件内容** @param filePathAndName* String 如 c:\\1.txt 绝对路径* @ret...

weixin_36119965的博客 3877

java下载乱码怎么解决_java下载文件出现乱码怎么解决

java下载文件出现乱码怎么解决发布时间:2020-06-24 13:12:27来源:亿速云阅读:108作者:Leah这期内容当中的小编将会给大家带来有关java下载文件出现乱码的解决方法,以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。String fileName = "下载的文件名"; String userAgent = request.getHeader("User-A...

weixin_42245967的博客 3651
上一篇: 开始学习python
下一篇: [转载]Java 虚拟机指令
i李小武
博客等级 码龄17年 160粉丝 99原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值