编辑器写C语言输出中文乱码记录

记录

在写C语言时,有时候需要使用printf输出中文,如果使用IDE来写代码,例如使用VisualStudio,输出中文没有问题。但是当使用编辑器+编译器的方式写代码,在这个环境下输出中文可能会遇到中文输出乱码。

环境

编辑器:VSCode

编译器:Mingw-w64

C语言代码:

#include <stdio.h>int main() 
{char a[2048];FILE *fp;if ((fp = fopen("test.txt", "r+")) == NULL) {printf("无法打开\n");return 0;}fscanf(fp, "%s", &a);printf("a的值:%s\n", a); fclose(fp);return 0;
}

代码说明:上述代码的主要作用是读取文件的内容,并将读取内容输出在屏幕上

文件内容:

说明:test.txt 文件是通过右键新建文本文档建立的。

过程

1.编译:使用gcc main.c -o main,生成可执行文件main.exe

2.运行:输入main.exe 运行程序 (注:test.txt和C源文件在同一个文件夹下)

分析原因:

这时候输出中文异常,但是读取的内容没有问题。

这里关注两个:一是为什么"printf("a的值:%s\n", a)"这句代码中的汉字在输出时乱码,二是同样汉字,读取的内容没有问题。

第一个问题是因为编码不一致,也就是文件的编码和系统终端(也就是cmd)的默认编码是不一样的,中文系统里cmd的默认编码是GBK,而在VSCode中文件的编码是UTF-8。当这两个编码不一样时,会出现中文乱码,准确说是异常。

图:VSCode的文件默认编码是UTF-8

第二个问题为什么读取内容没问题呢,这是因为Windows文本文档的默认编码是ANSI(在中文系统里即GBK)(ANSI和ASCII的关系:简单说就是ANSI是对ASCII的扩展,兼容ASCII),cmd默认输出编码是ASCII(即GBK),所以读取了文件内容再将内容输出到cmd终端没有问题。

图:通过文件-另存为 可以查看到这个文件的编码方式,默认为ANSI

测试

知道后,可以做个测试,将test文件的编码改为UTF-8,然后再读取输出,如果没有错,这时候应该输出异常。

1.保存为UTF-8

2.运行下程序

和预想结果一样

 

拓展

这里使用另一个轻量IDE:Dev-C++

当把main.c用dev打开时,出现乱码:

这个乱码和上面终端输出“a的值”的乱码一样

做个测试,使用dev新建文件,复制代码进去

编译运行结果:

我们在dev的终端里"a的值"输出没有问题,后面的内容异常,这是因为前面把test文件改为了UTF-8。这里就要问一个问题dev的代码文件难道和cmd的编码格式一样?

可以使用notepad++查看文件编码:

这个demo.cpp是在dev里创建,编码是GB2312

前面用dev打开VSCode创建的main.c出现乱码,说明dev是以GB2312的编码方式打开文件的,也是以GB2312保存文件的,而GB2312编码在cmd里以GBK编码输出中文是没有问题的。

 

参考资料

python中文编码问题深入分析(二):print打印中文异常及显示乱码问题分析与解决

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/60007.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决 PHP 输出中文乱码的问题

本文由荒原之梦原创&#xff0c;原文链接&#xff1a;http://zhaokaifeng.com/?p1340 解决 PHP 输出中文乱码的问题 问题描述 今天给导航狗(https://daohanggou.cn/)的 PHP 程序和数据库文件迁移了服务器, 但是迁移到新的服务器上之后 PHP 输出的中文和 PHP 输出的从 MySQL…

C语言输出中文乱码

因为MinGW是使用的UTF-8编码&#xff0c;而cmd是使用的GBK编码&#xff0c;所以会出现这种情况&#xff0c;输入数据为GBK&#xff0c;但是输出数据为UTF-8 如上图&#xff0c;修改之后就会成功输出中文字符串

BAT文件执行输出中文乱码

一、问题描述&#xff1a; BAT文件执行输出中文乱码&#xff1a; echo offecho 你好&#xff0c;世界pause二、原因分析&#xff1a; 出现乱码&#xff0c;极有可能是编码的问题 打开cmd在标题栏单击鼠标右键选择【属性】在属性-选项中可看到当前编码方式当前代码页936 然而…

Qt 应用程序输出中文乱码+UI界面输出中文乱码

本文的主要解决方法来自于博客&#xff08;Qt与MSVC中文乱码问题的解决方案_liuweilhy的博客-CSDN博客&#xff09;&#xff0c;特此鸣谢。 1.背景 今天心血来潮&#xff0c;将Qt编译器改为msvc 2019 64&#xff0c;应用程序中qdebug输出和界面输出的中文均出现乱码&#xff…

原创 | 一文读懂强化学习在动态规划领域的应用

作者&#xff1a;黄娘球本文约1600字&#xff0c;建议阅读5分钟 本文澄清易混淆基础概念、推导公式为主&#xff0c;回顾强化学习基础知识。 ChatGPT已成为继AlphaGo之后的社会现象级人工智能&#xff0c;引发了大模型研究的热潮。戴琼海院士提出&#xff0c;五年后大模型将成为…

LLM推理提速2.8倍,CMU提出投机式推理引擎,小模型撬动大模型高效推理

©作者 | 机器之心编辑部 来源 | 机器之心 近日&#xff0c;来自卡耐基梅隆大学&#xff08;CMU&#xff09;的 Catalyst Group 团队发布了一款「投机式推理」引擎 SpecInfer&#xff0c;可以借助轻量化的小模型来帮助大模型&#xff0c;在完全不影响生成内容准确度的情况下…

Python爬虫爬取各大热门短视频平台视频

1、开发工具 Python3.9 requests库 其他一些Python内置库 pycharm 2、第三方库 安装第三方库 pip install requests 3、实现思路 1、利用tkinter库实例化一个GUI界面&#xff0c;包含提示框、输入框、选择按钮、功能按钮。 2、用requests发送get请求&#xff0c;获得下…

短视频素材:17个视频网站,涨粉必上热门

2022年来了&#xff0c;加入短视频大军的人越来越多&#xff0c;但视频素材&#xff0c;视频制作一直是个门槛。 今天就给大家分享17个短视频素材网站&#xff01; 1、Coverr&#xff1a;&#xff08;https://coverr.co&#xff09; 很好很强大的免费视频素材网站&#xff0c…

CnOpenData短视频播主排名数据

一、数据简介 短视频即短片视频&#xff0c;是一种互联网内容传播方式&#xff0c;一般是指在互联网新媒体上传播的时长在5分钟以内的视频。随着网红经济的出现&#xff0c;视频行业逐渐崛起一批优质UGC内容制作者&#xff0c;微博、秒拍、快手、今日头条纷纷入局短视频行业&am…

短视频App对比分析报告

行业发展环境及现状对比 市场特点 优点&#xff1a; 短视频内容生产门槛低&#xff0c;内容产量大。 内容形式直观&#xff0c;信息携带量大&#xff0c;体量小巧。短视频信息量大&#xff0c;在流量及时间上消耗低&#xff0c;使用方式/场景灵活&#xff0c;符合移动互…

今年最火的APP,你更喜欢哪一个?#2019短视频APP排行榜#

用流量看视频已经不再是一种奢侈行为,并且人们更愿意自拍视频分享自己的生活来博取大众一笑,而短视频app就给了所有人一个展示的机会,你可以在上面自拍,也可以看别人分享的视频,那么如今最火的短视频app是哪个?短视频app哪个好呢?来看看榜单吧! 2019短视频APP排行榜 …

2023 ICCAD Contest Problem C ML for IR drop 赛题解析

文章目录 问题简述问题背景问题描述与目标评估指标 以往工作PowerNet: Transferable Dynamic IR Drop Estimation via Maximum Convolutional Neural NetworkThermal and IR Drop Analysis Using Convolutional Encoder-Decoder Networks(EDGe)BeGAN: Power Grid Benchmark Gen…

In-Context Learning开卷视觉任务,DeepMind提出快速适应新任务的“蜂鸟”模型

​ 论文链接&#xff1a;https://arxiv.org/abs/2306.01667 近来&#xff0c;随着ChatGPT和GPT-4等大模型的火热&#xff0c;使得学术界开始更多的关注于大模型背后的一些关键新技术&#xff0c;例如与ChatGPT高度相关的In-Context Learning&#xff08;情景学习&#xff0c;也…

怎样找一张图片的原图、出处?最全搜图网站+具体案例分享

前不久随手帮一网友找了张图&#xff0c;想了想中间的经历挺有意思&#xff0c;所以今天打算来说说以图搜图这个话题 第一部分&#xff0c;先介绍常用的识图引擎第二部分&#xff0c;想分享一下阿虚自己的搜图经验&#xff0c;也是今天主要想分享的。 ▍1 首先推荐几个识图引…

这几个免费、商用图片素材网,你一定要知道。

很多朋友不知道去哪里找图片素材&#xff0c;找到了又担心会不会侵权。 今天给大家分享6个免费可商用图片素材网站&#xff0c;这下再也不用担心找不到素材或侵权啦&#xff01; 1、菜鸟图库 传送门&#xff1a;https://www.sucai999.com/pic.html?vNTYxMjky 网站素材资源量…

6个高清图片素材网站,找图片素材就靠他们了

6个高质量图片素材网站&#xff0c;建议收藏&#xff01; 1、菜鸟图库 https://www.sucai999.com/?vNTYwNDUx 菜鸟图库虽然是一个设计网站&#xff0c;但素材库非常大&#xff0c;除了有设计类素材之外还有很多视频、音频、办公类等素材&#xff0c;图片素材就有好几十万张&a…

8个免费图片素材网,赶紧收藏起来

现在图片素材变得越来越重要了&#xff0c;除了平常设计经常要用到图片之外&#xff0c;大到平常文章、自媒体、视频制作配图&#xff0c;小到我们发朋友圈、日志、说说&#xff0c;都会用到图片来衬托。 但图片版权一直是设计师、自媒体和各大企业的一大难题。 要不就花钱买…

找高清图片素材,这8个网站就够了

相信很多设计师、自媒体都为找素材而烦恼&#xff0c;很多朋友不知道去哪里找图片素材&#xff0c;找到了版权还不明确&#xff0c;怕造成侵权&#xff0c;今天我就把我独家珍藏的8个图片素材网站分享给大家&#xff0c;免费下载&#xff0c;还可以商用&#xff0c;建议收藏起来…

股票web下单接口能查询到股票GIF分时走势图吗?

股票web下单接口可以通过使用getStockImageByteByCode来获取股票GIF分时走势图&#xff0c;那么运用该系统来获得中国股票GIF分时走势图字节数组为&#xff1a; INput&#xff1a;theStockCode 股票代号&#xff0c;如&#xff1a;sh000001 POST /WebServices/ChinaStockWebSe…

四大派围攻光明顶360摊上大事了

这一次360摊上大事了&#xff0c;这事与以往任何一次战争都不相同。 2月26日&#xff0c;《每日经济新闻》用四个整版的篇幅&#xff0c;推出了重磅调查报告《360黑匣子之谜--奇虎360“癌”性基因大揭秘》&#xff0c;一时震动行业。当天下午3点&#xff0c;360通过新浪微博安全…