c语言两个变量相乘出现乱码,乱码问题(二)常见乱码情况分析与解决方法

本文深入探讨了C语言中出现乱码的常见情况,包括操作系统编码差异、Java字符串乱码、文件读取及HTTP请求中的编码问题。通过分析原因并提供相应的解决方法,如指定编码参数、转换文件读取编码等,帮助开发者解决乱码困扰。
摘要由CSDN通过智能技术生成

在上一篇我们把编码的理论知识讲了一遍,在这篇我将会根据这列理论知识对一些乱码问题进行具体分析并给出解决方法

操作系统中的编码

在window中默认文件编码格式是ANSI,而ANSI并不特指哪一个具体的编码,它在不同的语言环境会对应不同的编码,比如在简体中文系统中就是GBK编码,而在繁体中文就是Big5编码。我们可以在Windows记事本中通过另存为来指定保存时所用的编码,如果不知道默认会以GBK编码保存(简体中文环境)

3276f14048d3?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

而在Liunx系统中文件默认编码为UTF-8,所以会经常出现一个文件在两个操作系统之间转移的时候发生乱码,其实解决方法很简单

更改文件的读取编码为原系统的默认编码

在原系统中按照目标系统的编码重新保存

也可以先1,之后直接把文件转换成当前系统默认编码,这样就不用每次打开文件时重新选择读取编码

java中字符串乱码

java类中字符串乱码

在java中,一个程序需要先编译成class文件,然后在由java虚拟机进行执行。而在class文件中,字符串都是以UTF-8编码表示的,这个是java虚拟机的规范。Class文件格式采用一种类似于C语言结构体的伪结构来存储数据,这种伪结构中只有两种数据类型:无符号数和表。而表结构中存在着一个叫CONSTANT_Utf8_info的表,用来存放字符串,而且是按UTF-8编码。所以乱码实际上是编译的时候你的文件编码跟javac使用的文件编码不一致而导致的。

javac默认的编码为操作系统的编码,这个编码在windows下位GBK,Linux下为UTF-8。在这里我用UTF-8编码格式把下面代码保存在windows系统中。

public class EncodingTest

{

public static void main(String[] args)

{

String s1 = "啊哈哈哈";

System.out.println(s1);

}

}

编译,运行,结果为乱码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值