计算机无法识别ANSI编码文件里的中文导致乱码「建议收藏」

计算机无法识别ANSI编码文件里的中文导致乱码「建议收藏」问题现象最近远程协助一个用户的电脑(TeamView竟然连接不上,只好用QQ远程啦),原来ANSI编码的ini文件里的中文是正常的;用着用着,某一天就乱码了,无法识别ANSI编码文件里的中文。创建ANSI编码的ini配置文件,输入中文后保存会提示“…该文件有Unicode格式的字符,当文件保存为ANSI编码的文本时,该字符将丢失…”的问题。原因Unicode和ANSI是两种不同的字符编…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

问题现象
最近远程协助一个用户的电脑(TeamView竟然连接不上,只好用QQ远程啦),原来ANSI编码的ini文件里的中文是正常的;用着用着,某一天就乱码了,无法识别ANSI编码文件里的中文。创建ANSI编码的ini配置文件,输入中文后保存会提示“…该文件有Unicode格式的字符,当文件保存为ANSI编码的文本时,该字符将丢失…”的问题。
原因
Unicode和ANSI是两种不同的字符编码方式。Unicode(统一码、万国码、单一码)使用全16位元字元集来表示字符,而ANSI编码通常使用 0x80~0xFF 范围的 2 个字节(8位)来表示 1 个字符。对于字符来说ANSI以单字节存放英文字符,以双字节存放中文等字符,而Unicode下,英文和中文的字符都以双字节存放。有些Unicode字符无法用ANSI编码来表示,因此文件中含有Unicode格式的字符保存为ANSI编码的文本时,该Unicode字符将丢失或被错误表示。这样文本保存以后,再次打开将会发现里面少了一些内容或是会出现乱码。
系统设置
打开控制面板(Control Panel),打开 时钟、语言和区域 (Clock, Language and Region),点击 区域 (Region),选择格式(Format) 选项卡查看,格式 为中文(简体,中国)。选择管理(Administrative) 选项卡,他的的系统区域设置也已经是 中文(简体,中国)了。
没有必要点击“更改系统区域设置 (Change system locale…) ”按钮,更改重启。
不过在cmd.exe输入chcp命令查询到当前系统的活动代码页为437,竟然不是936。
(437 是美国英语的代码页,936是中文的代码页)。
解决办法
chcp 是 “change code page”(更改代码页)的缩写,可以输入:chcp /?命令查看当前的活动代码编号。
更改代码页最好直接找到C:\WINDOWS\system32\cmd.exe这个运行,而不是运行快捷方式。
输入:chcp 936 按回车键执行,更改代码页。可以显示中文了。
再输入:chcp 437 按回车键执行,原有的中文又会变成问号。
最后建议
程序默认的编码为系统编码,windows一般是ANSI编码。Windows 自带的记事本(Notepad.exe)会默认采用 ANSI 编码来处理文本文件,这也是由于大部分的文本文件都是用各国自己的编码标准写成的。这个ANSI 编码的具体编码方式,也会因上面所讲述的设置变化而有所改变。若想要摆脱不同的 ANSI 编码所产生的困扰(如在中文的系统上写的TXT文档要在日文的系统上打开经常会出现乱码),可以在保存文本文件时 选择采用 UTF-8 (单字节8位的Unicode编码)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192960.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ajax跨域解决方案_java如何解决跨域问题

    ajax跨域解决方案_java如何解决跨域问题答案:只需要点击标题下面的蓝色字【web前端开发】关注即可。前言从刚接触前端开发起,跨域这个词就一直以很高的频率在身边重复出现,一直到现在,已经调试过N个跨域相关的问题了,16年时也整理过一篇相关文章,但是感觉还是差了点什么,于是现在重新梳理了一下。个人见识有限,如有差错,请多多见谅,欢迎提出issue,另外看到这个标题,请勿喷~题纲关于跨域,有N种类型,本文只专注于ajax请求跨域(ajax跨域只是属于浏览器”同源策略”中的一部分,其它的还有Cookie跨域iframe跨域,Loc

    2022年8月24日
  • 电商网站开发语言_电商平台架构图

    电商网站开发语言_电商平台架构图现在有这么一个需求1,一个电商平台要做多语言支持,主要就是商品要支持多种语言,也就是说,有一个商品id为100,默认显示简体中文,当我点击英文版的时候就显示该id为100的英文版本。所有的商品多种语言的商品id是不会变的,会变的只是显示的语言变了而已。不能分为多个网站来使用。只能是在一个域名下。3.数据库应该如何设计?求大神们给点思路,谢谢回复内容:现在有这么一个需求1,一个电商平台要做多语言支持…

    2022年9月27日
  • clion2021 激活码(最新序列号破解)

    clion2021 激活码(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
  • 全网最全python爬虫精进

    全网最全python爬虫精进4.25(第一天)**第0关认识爬虫**1、初始爬虫爬虫,从本质上来说,就是利用程序在网上拿到对我们有价值的数据。2、明晰路径2-1、浏览器工作原理(1)解析数据:当服务器把数据响应给浏览器之后,浏览器并不会直接把数据丢给我们。因为这些数据是用计算机的语言写的,浏览器还要把这些数据翻译成我们能看得懂的内容;(2)提取数据:我们就可以在拿到的数据中,挑选出对我们有用的数据;(3)存储数据:将挑选出来的有用数据保存在某一文件/数据库中。2-2、爬虫工作原理(1)获取数据:爬虫程序会根据

    2022年5月27日
  • golang 基础编程

    golang 基础编程

    2022年2月19日
  • sqlformat数字格式化_java怎么输出数字

    sqlformat数字格式化_java怎么输出数字前言以前用到要对数字格式的地方,都是直接到网上搜一下。拿过来能用就行。因为平时用的不多。但是最近的项目对这个用的多了。网上拿来的不够用了。自己看了java源码把这方面恶补了。而且最近也好长时间没有写博客了。正好写一篇抛砖引玉吧。正文如果你对java源码比较了解。你会发现java对文字,数字的格式化,是有一个公共的父类的Format。NumberFormat和DecimalFormat都是它…

    2022年10月8日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号