当前位置: 首页 > news >正文

广南酒店网站建设天津网站开发建设公司

广南酒店网站建设,天津网站开发建设公司,哪家网站做旅游攻略好,英国有哪些做折扣的网站有哪些如何很快将文件转换成另外一种编码格式? 利用VS Code右下角的"选择编码"功能,选择"通过编码保存"可以很方便将文件转换成另外一种编码格式。尤其,在测试w/ BOM或w/o BOM, 或者ANSI编码和UTF编码转换,特别方便。VS文件另…

如何很快将文件转换成另外一种编码格式?

  • 利用VS Code右下角的"选择编码"功能,选择"通过编码保存"可以很方便将文件转换成另外一种编码格式。尤其,在测试w/ BOM或w/o BOM, 或者ANSI编码和UTF编码转换,特别方便。
  • VS文件另存为有高级保存选项,如下:

编码

大家都遇到过乱码,本质在于默认和使用的字符集不同,用不同的编码在交流。尽管Unicode是世界标准,但它在某些场合未必是最优的编码,不一定会采用。

编码举例

比如python.py:
s = '你好'
$ hexdump -c python.py
0000000 s = ' 344 275 240 345 245 275 ' \r \n

每个中文是3个字节,是UTF-8编码。

源代码的编码

  • VS2019: C语言代码开头默认插入EF BB BF标志(BOM标志), 代表UTF-8编码。如果修改为Unicode Little Endian编码保存,代码开头会被插入FF FE.
  • Javac提供-encoding编译选项指定代码编码。
  • HTML提供charset属性指定编码格式。

乱码的本质

  • 以Python为例:从源代码角度,程序员写完之后保存编码格式A,放到Python解释器运行,它按编码格式B解析,最终输出的结果也可能在命令行窗口展示,它使用编码C. 只有A/B/C都适配,结果才是预期。

BOM标记

  • 为了更清晰标明字符编码,引入了BOM ( Byte-Order Mark). BOM的设计高明之处在于它将字符编码信息放在文件开头,而非文件之外,强制要求对字符编码的判断。注意,BOM只对UTF-16和UTF-8有效,对其他编码是无效的。

按指定编码格式编译?

当源代码编码格式是xxx时,gcc可以用参数-finput-charset=xxx用xxx编码格式编译。例如源代码并不是UTF-8,是UTF-16LE,可以用gcc -finput-charset=UTF-16LE demo.c编译。所有可支持的编码格式可以通过iconv -l获取。

当然,对于gcc, 如果仅仅用新的编码格式,你大概率会遇到编译错误。原因是你可能包含了系统头文件,而它们是用默认UTF-8编码的。

如果是VS,就没有这样的烦恼,它可以自动检测编码,即使是UTF-16LE编码,可以用cl.exe demo.c轻松编译通过,不用特别指定编码。但对于UTF-8,必须是带BOM头,否则也会编译错误。

指定并编译编码格式为UTF-16LE源代码,依然报错?

如何检测文件编码格式?

世界无奇不有,编码格式也五花八门,在预先不知道编码格式的情况下,检测编码格式除了靠一些特定标志,剩下的就是靠猜。

  • Unicode世界有BOM头,凭此可以找到编码格式。
  • 某些文件在开头有编码指示,例如XML和HTML有charset的说明。
  • 利用编程语言的字符编码检测库,例如Python的chardet库,Node.js中的jschardet库等。
  • 利用file -i命令猜测文件编码。
  • 许多文本编辑器,例如Visual Studio Code,Notepad++, Sublime Text等,具有检测文件编码的功能。当你打开一个文件时,编辑器通常会自动检测编码,并可以点击右下角的编码格式选择新的编码。
  • 利用在线编码检测网站,例如file-encode-detect.

Java .class文件编码和JVM运行期内存编码

  • Java源代码可以是任意编码格式,javac需要指定编码格式-encoding即可正确编译。
  • javac编译出.class文件是UTF-8编码。
  • JVM读取.class文件加载到内存中,编码格式为UTF-16.
  • java执行.class文件使用默认字符串输出(Windows平台是GBK),如对应的终端或显示设备编码不同,使用-Dfile.encoding=xxx指定编码。


若文章对您有帮助,欢迎关注 程序员小迷 。助您在编程路上越走越好!

微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是 程序员小迷 (致力于C、C++、C#、Android、iOS、Java、Kotlin、Objective-C、Swift、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

http://www.yayakq.cn/news/496651/

相关文章:

  • 江西网站开发公司电话南昌那个公司做网站好
  • 网站设计一般是什么专业网页视频怎么下载ios
  • 品牌型网站的设计html5门户网站模板
  • app是网站吗网站备案要注意什么
  • 网站开发经典wordpress 医疗
  • 汽车网站开发毕业设计论文珠海建站公司
  • 网站为什么会出现死链高端精品网站建设
  • 18款禁用网站app直播wordpress 电影模版
  • 正规品牌网站设计推荐珠海在线网站制作公司
  • 广州网站开发怎么做大学网站栏目建设通知
  • 网站设计风格化站长工具官网域名查询
  • 网站形式网站icp备案网址
  • 微信开发者平台小程序广州seo关键词优化是什么
  • 仿163源码商城网网站模板交易平台源码整站打包半成品公司 网站
  • 网站建设流程精英代理网址上境外网
  • 外贸企业网站评价案例深圳惠州网站建设公司
  • 上海设计网站公司国外那些网站是做菠菜的
  • 湖南省百川电力建设有限公司网站wordpress 翻页画册
  • 红叶网站建设方案seo技巧
  • 网站后台安全性网站运营与公司
  • 东莞公司网站做优化wordpress两步验证
  • 网站开发定制公司简单的电商网站
  • 北京专业网站制作服务网络推广外包注意哪些
  • 局门户网站建设的目标云南省滇中引水工程建设管理局网站
  • wordpress 企业网站 免费网站开发维护人员
  • 银川网站建设推广淮南医院网站建设
  • 南昌盗网站少优化公司阿里巴巴国际站官网
  • wordpress的小工具怎么用泰安优化公司
  • 整套网站建设wordpress怎么降级
  • 怎样开自己的网站厦门市思明区建设局网站