JAVA乱码问题分析

半导体EAP系统入门指南:从零开始理解设备自动化程序(附实战案例) 本文深入浅出地介绍了半导体制造中EAP(设备自动化程序)系统的核心作用与工作原理。EAP作为连接MES与生产设备的桥梁,负责指令翻译、数据采集与实时控制,是实现晶圆厂全自动化的关键。文章通过对比手动与自动模式,阐述了EAP在提升效率、保障良率方面的价值,并提供了一个实战案例,帮助读者从零构建对半导体CIM体系中这一关键组件的理解。 阅读详情

首先,所有的字符在计算机上都是以二进制存储的;

1.JAVA 虚拟机 JVM 中的编码方式:

JAVA 虚拟机 JVM 把 JAVA 源代码编译成 Unicode 形式的 byte code ,其它数据在 JAVA 中也是以 UNICODE 形式存储的。

2. 汉字主要编码集的兼容关系:

   汉字的主要字符集有: GB2312, GBK, GB18030 , UNICODE, UTF-8, BIG5;

   其中 GBK 兼容 GB2312 , UNICODE 与 UTF-8 相对兼容(即可用一些公式进行转换,而无须知道两种字符表的一一映身关系)

GBK,GB2312,BIG5 都为双字节编码,即所有的字符在该字符集内都占两个字节;

   而 GB18030 采用单字节,双字节,四字节的存储方式,其中 128 个 ASCII 符号为单字节区,所有汉字为双字节区;

UTF-8 为一到六字节,其中汉字为两到三字节;

UNICODE 为两字节,而扩展 UNICODE 集也有四字节字符,对于汉字及常用各种符号来说,都为双字节;

BIG5 为台湾公司字符集,大陆不用;

故对于汉字存储体系来说,严格双字节或小于等于双字节的可以采用 GB2312,GBK,GB18030 , UNICODE 编码;

如果英文较多,为传输方便,则采用 UTF-8 ,但这样就不好计算存储汉字所需空间;

 

3.JAVA 读取文件并显示

( 1 ) JAVA 如何读取文件编码方式:

   在操作系统中,因为计算机本身无法知道当前文件的编码方式,故对于流文件,一般读取时要手动的指定其编码方式,否则 JAVA 会采用系统默认的字符映射表读取文件;对于 WINDOWS 来说,其默认字符集一般为 GB 系列;对于 UNIX 或 LINUX 来说,一般为 UTF-8;

( 2 ) JAVA 如何显示字符

  对于 System.out.println() 命令来说, JAVA 默认采用当前系统默认的字符集来输出字符 ,如果在 MYECLIPSE 或 ECLIPSE 环境, JAVA 则会采用当前工程默认的字符集来输出字符;

  ( 3 )总结 2,3 的字符转换就是:文件(由当前系统编码转为 UNICODE ) ->JAVA 内存(由 UNICODE 编码转为当前显示系统的字符集) -> 当前显示系统的默认字符集

  所有的转换都是自动进行的,故实际上对我们并无影响;

但如果在转换的过程中,文件存储的编码格式并非系统默认的编码格式,则 JAVA 转换就会出问题,会出现乱码;

如果显示系统的字符集与文件采用的字符集不同,则有可能显示系统的字符集有可能未包含文件字符集的全部字符,如果显示这些字符时就会有 ? 号;

4.WEB 编码

  标准的 WEB 通信模式如下:

   客户机发消息 -> 传输 -> 服务器接收并返回消息 -> 传输 -> 客户机接收并显示

(1)       客户机发消息:

在这一步客户机的消息编码为本地编码(准确地说是该通信进程所采用的编码)

(2)       传输

首先:基本上所有的传输都采用 ISO-8859-1 标准传输,该编码兼容所有其它的编码方式;

其次:为减少传输时间,有些网站会对数据进行压缩,通常是 GZIP 格式;

(3)       客户机接收并显示

客户机接收该编码,并进行解码;对于 JAVA 来说,通常所有的通信类,包括 Socket 类 ,URLConnection 类,以及其它基于这两个类的继承类,在接收数据的时候会根据报文头的编码格式自动将对应的编码转为 UNICODE 编码;

但对于 GZIP 格式来说, 除 浏览器外, JAVA 中的类一般并不会自动进行解压缩,此时会出现乱码,故需要手动判断,如果报文头为显示 Content-Encoding: gzip 则必须调用 GZIPInputStream 对输入流进行解压缩操作;

( 4 ) 对于 WEB 通信产生的乱码问题,可根据以上情况进行分析,但以上情况并不全面,

因此,最根本的方法是:首先确定是否服务器端即为乱码,如果不是,则对报文头进行分析,看是否报文解析问题,接下来才是本地的显示及编码问题;

5. 数据库编码

     数据库也会自动将输入的字符串自动转为数据库的存储格式(此过程发生在 JDBC 过程中,还是数据库的底层驱动函数中暂不清楚),但须注意:

     1.CONNECTION 中必须指定对应的数据库(确切的说是执行插入或更新操作的表的)字符编码格式;

     2. 遇到数据库本地字符集无法存储的字符会抛错;

声明:

所有的分析的根据来源于网络及个人试验,因个人水平原因,本文可能存在错误,故该文章仅作参考,不作为可靠的技术文档;

 

 

Open3D点云算法与点云深度学习案例汇总(长期更新) Open3D-python算法专栏文章汇总,长期更新算法原理与实战案例。 阅读详情

相关推荐

modbus

从机地址 功能码 起始地址高位 起始地址低位 数量高位 数量低位 字节数 0001H高位 0001H低位 0002H高位 0002H低位 CRC高位 CRC低位。每个输入寄存器的长度为2个字节。其中,CDH对应线圈0013H到001AH的内容,01H对应线圈001B到001CH的内容,未使用位用0填充。从机地址 功能码 起始地址高位 起始地址低位 寄存器数量高位 寄存器数量低位 CRC高位 CRC低位。从机地址 功能码 起始地址高位 起始地址低位 寄存器数量高位 寄存器数量低位 CRC高位 CRC低位。

lunhuicnm的博客 9748

No mapping for the Unicode character exists in the target multi-byte code page

在目标多字节码页面中,不存在UniCode字符映射,我今天出现这个问题的原因是在nginx目录存放路径中存在中文,将路径中中文修改掉即可。

L_bord的博客 2836

手把手教你用PlantVillage数据集搭建农作物病害识别模型(Python实战)

本文详细介绍了如何使用PlantVillage数据集和Python构建农作物病害识别模型。从环境准备、数据获取到模型构建、训练与评估,手把手教你实现一个实用的农业AI应用。特别针对PlantVillage数据集的特点,提供了处理类别不平衡、图像预处理和模型优化的实战技巧,帮助开发者快速掌握农作物病害识别技术。

weixin_29184371的博客 479

python读取pdf

记录一次使用python读取pdf的经历 pdf格式如下图所示: 该文件包含了一些论文信息:题目和作者 现在需要将论文和题目进行提取,输入到excel中。 处理程序如下,虽然有一些错误,但是可以作为一种参考方法。 处理方法 import pdfplumber import os import openpyxl as xl def process(words, base_top, tgt): top_list = {} paper_dict = {} num = 1

tyler的博客 525

深度学习模型设计的方法和技巧

设计神经网络模型是一个迭代的过程,需要不断试验和调整各个组成部分,以达到最佳性能。同时,遵循良好的工程实践,如模块化设计、版本控制、文档记录等,也是成功的关键。

xw555666的博客 4027

记录Nvidia AGX Orin的配置日常(二)设置上电自动开机和远程桌面

因为要拿AGX作为机器人的主控板,所以需要给他设置一下通电后无需按电源键就自动开机,然后再配置一下远程桌面。

AutomaticForever的博客 1361

【pdfbox】No Unicode mapping for CID+24314 (24314) in font NUYLPX+SimSun

pdfbox读取pdf文件抛出【No Unicode mapping for CID+40 (40) in font NUYLPX+SimSun】中文字体编码问题

筱星 1141

使用Typora时LaTeX内联公式简单汇总

0、前言 在使用Typora写笔记时,有时候需要添加上LaTeX排版的公式。以下是整理出的一份简单笔记,方便记忆不清楚时查阅。笔记暂时不够完善,之后再补充。 注:有些公式语法KateX不能解析,但在Typora中可以使用(不用在意) 1、一些基本内联公式 位置关系 展示 LaTeX 说明 x2x^{2}x2 x^{2} 右上标 x2x_{2}x2​ x_{2} 右下标 2x{}^{2}x2x {}^{2}x 左上标 2x{}_{2}x2​x {}_{2}x 左下标

白白旧维的博客 4438

windows下启动nginx报错

报错信息如下: (1113: No mapping for the Unicode character exists in the target multi-byte code page) 翻译:目标多字节代码页中不存在Unicode字符的映射 是因为我解压的路径里面有包含中文的原因,只要把解压后的文件放到没有中文路径的地方,即可正常启动。 一开始,我是直接跑的nginx.exe,...

yang_yulin_的博客 1132

ROS2入门到精通—— ROS2实战专栏(实时更新)

Nav2专栏介绍

BigDavid123的博客 2366

Windows 下运行 openclaw 出现“‘openclaw‘ 不是内部或外部命令,也不是可运行的程序或批处理文件“的解决方案

方案适用场景推荐指数检查并手动添加 PATH明确知道全局安装目录,只是没加进PATH⭐⭐⭐⭐⭐pnpm setup 自动配置使用 pnpm 安装,想要省心的自动化方式⭐⭐⭐⭐⭐npx 免安装临时运行快速验证核心程序是否正常,排除法排查⭐⭐⭐⭐清理残留后重装npm/pnpm 混用导致版本混乱⭐⭐⭐⭐改用 WSL2不熟悉 Windows 路径体系,长期使用⭐⭐⭐'openclaw' 不是内部或外部命令这类报错,本质上不是"程序坏了",而是。

一键难忘的博客 1万+

java乱码问题分析

java乱码问题问题描述原因分析:解决方案:要求实例补充:常见的两种字符集及其代码:Windows系统下查看默认字符集Windows系统切换命令行字符集 问题描述 两种情况: 使用javac命令编译的时候报错,例如: 编译的时候没报错,但在使用java命令运行class文件时出现乱码,例如: 原因分析: 一个Java源代码到输出的过程如下所示: 在解码、编码和显示的时候都会使用到字符集。 通常,在使用javac命令不加任何选项时,javac命令会使用当前系统默认的字符集将.java源文

xswl5148的博客 9127

2026.3.9:具身智能之GraspNet:Ubuntu24.04安装GraspNet

本文详细介绍了在Ubuntu24.04系统下安装GraspNet具身智能框架的全过程。主要包括:1) 创建Python3.9虚拟环境;2) 安装CUDA12.8和PyTorch2.7.0等基础依赖;3) 编译安装pointnet2、knn和graspnetAPI三个核心组件;4) 修改源码适配新版PyTorch;5) 下载预训练权重并成功运行demo。安装过程中特别提示了可能遇到的报错处理方案,最终在GPU环境下实现了GraspNet的部署运行。整个流程涵盖了从环境配置到项目运行的完整步骤,为具身智能研究者

拥抱具身智能,昇腾Ascend C 203

java乱码:GBK和UTF-8互转尾部乱码问题分析

java乱码:GBK和UTF-8互转尾部乱码问题分析

中年闰土的博客 28万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Java中文乱码问题分析与解决指南

当遇到第三方系统返回不可控编码时,可采用"探测+转换"双保险:先通过chardet库自动检测字节流编码,再通过String.getBytes(originalCharset)配合new String(bytes, targetCharset)进行二次转换。快速生成了编码对比Demo,发现其内置的UTF-8环境配置能自动规避90%的乱码场景。开发时可使用java.nio.charset.Charset.availableCharsets()列出所有可用字符集,通过Hex编辑器查看文件真实编码。

StarfallOwl89的博客 782

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

java gbk编码_Java GBK 中文乱码问题分析

在io相关的操作中经常会出现乱码问题比如在一个txt文件中按GBK编码保存内容”淘!我喜欢!”然后用RandomAccessFile类读取并打印一行。RandomAccessFileraf=newRandomAccessFile("D://1.txt","r");System.out.print(raf.readLine());打印结果显示乱码:在网上查询到加入相关编码解码操作后可以解决该...

weixin_39926191的博客 3522

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Java GBK中文乱码问题分析

转载地址:http://my.oschina.net/skyshitt/blog/614439 在io相关的操作中经常会出现乱码问题 比如在一个txt文件中按GBK编码保存内容"淘!我喜欢!" 然后用RandomAccessFile类读取并打印一行。 ? 1 2 RandomAccessFile raf = new Rand

木子李的博客 891

java 浏览器错误分析_透彻分析和解决一切javaWeb项目乱码问题

前言乱码是我们在程序开发中经常碰到且让人头疼的一件事,尤其是我们在做javaweb开发,如果我们没有清楚乱码产生的原理,碰到乱码问题了就容易摸不着头脑,无从下手。乱码主要出现在两部分,如下:第一,浏览器通过表单提交到后台,如果表单内容有中文,那么后台收到的数据可能会出现乱码。第二,后端服务器需要返回给浏览器数据,如果数据中带有中文,那么浏览器上可能会显示乱码。接下来我们逐一分析乱码产生的原因,以及...

weixin_31908827的博客 391

关于c++与java中文乱码问题分析与解决

问题分析: 之所以会出现中文乱码问题,归根结底在于中文的编码与英文的编码方式存在差异。 在java内部是使用16bit的unicode编码(即utf-16)来表示字符串,无论英文还是中文都是2字节。 C/C++使用的是原始数据,ascii是一个字节,中文一般是GB2312编码,用2个字节表示一个汉字。 Jni内部是使用utf-8编码表示字符串的,utf-8是扁长的unicode,一般ascii是1字节,中文是3字节。

Dionysos_lai的专栏 6545

java乱码问题分析和解决

jvm启动时使用系统默认编码来作为file.encoding,其中file.encoding会影响默认的输出编码,所以只需要统一cmd的显示编码,让cmd能够显示中文,其次再调整jvm的默认编码,让jvm默认输出到标准输出时采用默认编码。例如修改cmd的chcp为65001,让cmd支持utf8,接着添加jvm参数-Dfile.encoding=utf8,让jvm输出的编码默认为utf8即可。或者修改cmd的chcp为65001,接着修改system.out采用的编码,也可以正常输出utf8格式的字符串。

qq_39553871的博客 269

再再谈java乱码:GBK和UTF-8互转尾部乱码问题分析(续)

反过来呢?可能会很惨,大范围溃散。。。 同时,可参考:一段java代码带你认识锟斤拷 GBK字节码用UTF-8解码 来看一段代码: public static void main(String[] args) throws IOException, ParseException { String str="中国人"; System.out.println(str); byt...

weixin_40789065的博客 1319

java 与 乱码问题_透彻分析和解决一切javaWeb项目乱码问题

前言乱码是我们在程序开发中经常碰到且让人头疼的一件事,尤其是我们在做javaweb开发,如果我们没有清楚乱码产生的原理,碰到乱码问题了就容易摸不着头脑,无从下手。乱码主要出现在两部分,如下:第一,浏览器通过表单提交到后台,如果表单内容有中文,那么后台收到的数据可能会出现乱码。第二,后端服务器需要返回给浏览器数据,如果数据中带有中文,那么浏览器上可能会显示乱码。接下来我们逐一分析乱码产生的原因,以及...

weixin_35598854的博客 159

文《关于c++与java中文乱码问题分析与解决》中一个bug分析

在前几篇一博客《关于c++与java中文乱码问题分析与解决》,地址如下:http://blog.youkuaiyun.com/dionysos_lai/article/details/38389765。文中详细介绍了c++与java数据传递时,为何会出现中文乱码的原因,并提出了适当的解决方法。方法如下:

Dionysos_lai的专栏 1644

Java中文字符乱码问题分析与解决方案

这种差异是导致乱码问题的根本原因。这种情况通常发生在编码过程中使用了不支持中文的字符集(如ISO-8859-1),导致无法识别的字符被替换为问号。实际操作中发现,平台提供的实时预览功能可以直观地看到编码转换结果,对于理解字符编码原理很有帮助。数据库连接时如果未正确设置字符集,或者数据库表字段的字符集与应用程序不匹配,就会出现这类问题。这表明编码和解码过程使用了不同的字符集,但这两个字符集都能处理中文,只是对应关系不一致。特别注意网络传输、文件读写、数据库连接等环节的编码设置,确保整个数据链路的一致性。

SapphireFox89的博客 428

rabbitmq java 乱码,透彻分析和解决一切javaWeb项目乱码问题

前言乱码是我们在程序开发中经常碰到且让人头疼的一件事,尤其是我们在做javaweb开发,如果我们没有清楚乱码产生的原理,碰到乱码问题了就容易摸不着头脑,无从下手。乱码主要出现在两部分,如下:第一,浏览器通过表单提交到后台,如果表单内容有中文,那么后台收到的数据可能会出现乱码。第二,后端服务器需要返回给浏览器数据,如果数据中带有中文,那么浏览器上可能会显示乱码。接下来我们逐一分析乱码产生的原因,以及...

weixin_39860755的博客 1487

Java中文乱码问题的分析及其解决方案

随着全球化的发展,软件需要支持多种语言,特别是中文。然而,Java开发者经常遇到中文乱码问题,这可能会导致数据传输和显示错误。本文将深入探讨Java中文乱码的原因,并提供一系列解决方案。处理Java中文乱码问题需要细心和正确的编码知识。本文提供的解决方案可以帮助开发者避免常见的陷阱,确保软件能够正确处理中文字符。

脚踏实地,实事求是。 9685
上一篇: JAVA乱码问题分析
下一篇: JAVA乱码问题分析参考文章
expectbird
博客等级 码龄19年 9粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值