1.win732位中文乱码
2.电视机被锁定了,卡式不能换台,台源怎么办?
win732位中文乱码
win下载中文乱码(win7下载文件乱码)前言
初学者在Windows平台上进行C/C 在发语言(中文)程序时,码立有时会遇到编译报错、式台控制台运行时显示中文乱码的卡式问题。
本文描述并分析了此类问题的台源在线工具网站源码原因,然后给出了解决方案。码立
本共享内容目录如下:
基本概念(字符集、式台字符编码、卡式代码页面)GBK、台源UTF-8)
问题描述(例源码、码立编译报错、式台中文乱码)
原因分析(编码环节简介,卡式原因分析)
解决方案(解决方案、台源编译错误解决方案、码立中文乱码解决方案)
结束语
1. 基本概念本文将涉及以下基本概念:
1.1 Charset(字符集)Charset(字符集):是系统支持的所有抽象字符的集合。字符是各种文字和符号的总称,包括国家文字、标点符号、图形符号、数字等。字符是各种文字和符号的总称,包括国家文字、标点符号、图形符号、数字等。python 取网页源码常见的字符集包括:ASCII字符集、Unicode字符集等。
计算机要准确处理各种字符集文字,需要编码字符,使计算机能够识别和存储各种文字。
1.2 Character Encoding(字符编码)Character Encoding(字符编码)用于为指定集合中某一对象(如电脉冲、比特模式等),以便文本在计算机中存储和通过通信网络的传递。字符编码是将符号转换为计算机可接受的数字系统。常见例子:将拉丁字母表编码成ASCII。
注:术语字符编码(Character Encoding)、字符映射(Character Map)或者代码页(CodePage),同义概念往往是历史上的,即字符表(repertoire)如何将中间的字符编码的流(stream of code units)–通常每个字符对应单个码元。
1.3 CodePage(代码页)CodePage(代码页)它也被称为字符编码的别名内码表,是特定语言字符集的表。
1.3 CodePage(代码页)CodePage(代码页)它也被称为字符编码的别名
内码表,是特定语言字符集的表。
OEM(IBM PC)代码页:指计算机的BIOS支持的字符集编码。最具代表性的是"代码页(IBM PC或MS-DOS )"。
Windows(ANSI)代码页:微软定义了一系列支持不同语言字符集的代码页支持不同语言字符集的代码页。最具代表性的是代码页WINDOWS-(实现了ISO--1)。注:Windows代码页面最初是基础ANSI草案实现了,草案最终成为ISO -1。这是intel网卡驱动源码Windows代码页被称为ANSI的缘由。本文涉及的两个重要代码页面介绍如下:代码页
:代码页面对应GBK编码。既是OEM代码页
,也是ANSI代码页。代码页:代码页面对应
UTF-8编码。Windows平台上的GUI程序使用
ANSI代码页,使用控制台程序OEM代码页(以便向后兼容)。
在Windows系统中的命令行窗口可以通过
chcp命令
显示当前代码页(如Windows 7 中文操作系统默认代码页为):C:\\> chcp 活动代码页:也可以通过chcp命令将具体的整数参数(代码页数值)带到当前的代码页(如临时修改为UTF-8对应的):C:\\> chcp Active code page:
1.4 GBK(汉字内码扩展规范)GBK(英文全称:Chinese Internal Code Extension Specification,中文全称:扩展汉字内码规范)是对GB-扩展,即代码页扩展(以前代码页和
GB-一模一样),最早实现Windows 简体中文版。GBK总编码范围为
0x~0xFEFE,首字节在0x~0xFE
尾字节在之间0x~0xFE之间,剔除
xx7F
一条线。GBK共有个汉字和图形符号,包括个汉字(包括部首和构件)和个图形符号。GBK共有个汉字和图形符号,包括个汉字(包括部首和构件)和个图形符号。后续的国家标准GB技术上兼容GBK。注:微软Windows安排给GBK代码页是,所以编码格式WINDOWS-其实就是GBK。
1.5 UTF-8UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode可变长度字符编码。它可以使用一到四个字节Unicode
编码字符集中的所有有效编码点,属于Unicode
标准的一部分。自年以来UTF-8它一直是互联网上使用最广泛的编码方法。2. 问题描述初学者在Windows平台上进行C/C 在发语言(中文)程序编程时,莱特币源码分析有时会遇到编译报错、控制台执行时显示中文乱码的问题。
2.0 示例源码
C语言源代码文件(功能:中英文信息从控制台显示。)#include int main(void){ printf(" \");printf(" Hello, C语言开发者! \");printf(" \");return 0;}2.1 编译报错
第一类问题是:编译时发现错误,错误信息如下:
hello.c: In function 'main':hello.c:6:: error: converting to execution character set: Illegal byte sequenceprintf(" Hello, C语言开发者! \");^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2.2 中文乱码第二类问题是以通过编译顺利生成,但可执行文件在Windows控制台运行时显示中文乱码,如下图示:控制台显示中文乱码1或:
控制台显示中文乱码. 原因分析Windows平台C/C 语言(中文)程序编译报错,控制台执行时显示中文乱码一般是编码不一致造成的。3.1 编码链接简介首先,我们来看看 Windows 一个平台开发运行C/C 语言程序的编码环节主要涉及哪些?C语言开发全过程涉及编码环节
链接1。保存源代码时的字符编码
描述:指保存源代码文件中编辑器使用的字符编码。默认编码:Windows默认情况下,台上Windows本地编码,即WINDOWS-代码页,也就是GBK编码。默认编码:Windows默认情况下,台上Windows本地编码,即WINDOWS-代码页,也就是GBK编码。编码设置:源文件保存代码可以通过编辑器设置更改,如果保存为
UTF-8编码
。编译过程中的输入文件(源文件)字符编码描述:GCC用于编译输入源代码文件分析的字符编码。默认:GCC编译编译时默认输入文件UTF-8编码解析的悬浮导航样式源码。编码设置:可通过设置编译器选项-finput-charset=指定编编码来指定编译器输入的源文件。示例-finput-charset=GBK
三、编译器编译的输出文件(可执行文件)字符编码描述:GCC用于编译输出文件(可执行文件)的字符编码。默认:GCC默认为编译器UTF-8编码。编码设置:GCC可设置编译器-fexec-charset=选项指定编译器显示输出执行文件的编码。示例:-fexec-charset=GBK四、控制台使用的字符编码描述:显示控制台使用的代码。默认:Windows默认使用平台控制台WINDOWS-代码页(即GBK编码);Linux默认使用控制台UTF-8编码。
编码设置:Windows可通过平台注册表编辑器指定控制台显示输出执行文件的编码。3.2 原因分析
Windows平台C/C 语言(中文)程序编译报错,控制台执行时显示中文乱码一般是编码不一致造成的。原因分析
3.2.1 分析编译报错原因从上图可以清楚地看出,编译报错的原因是环节一与环节二由于两码不一致(如下)造成的:(一)上图1与4的组合(源文件保存为UTF-8编码
,但GCC编译器设置输入文件-源文件GBK编码解析)(2)上图2与3的组合(源文件保存为GBK编码
,但GCC编译器设置输入文件-源文件UTF-8编码解析)
3.2.2 中文乱码原因分析从上图可以清楚地看出,中文乱码的原因是环节三与环节四由于两码不一致(如下)造成的:(一)上图5和8组合
(GCC编译器对输出执行文件设置的是UTF-8编码,但Windows控制台是GBK编码)(二)上图中的6与7的组合
(GCC编译器对输出执行文件设置的是GBK编码
,但Windows控制台是UTF-8编码)
4. 解决方法
4.1 解决思路
通过上述原因分析,已经发现了编译报错和中文乱码的问题根源所在:前后环节的编码不一致造成。
既然问题根源找到了,那么解决思路也就迎刃而解了(如下图示):解决思路一、在环节一和环节二之间保持两者编码的一致性(1和3组合
,或2和4组合)进而解决编译报错问题;二、在环节三和环节四之间保持两者编码的一致性(5和7组合
,或6和8组合)进而解决中文乱码问题。
4.2 编译报错解决针对编译报错的两种情形(1和4组合、2和3组合)具体解决办法是:4.2.1 方法一(1和3组合)修改源文件编码为UTF-8编码,以跟GCC编译器对输入文件-源文件默认UTF-8编码解析保持一致。修改源文件编码为UTF-8编码的具体步骤如下:修改源文件编码为UTF-8编码Step1:通过执行Code::Blocks软件的菜单栏设置下的编辑器子菜单项,进入“编辑器配置”窗口。Step2:点击左侧常规设置按钮(上图标号1处),继续点击右侧的编码设置选项卡(上图标号2处)Step3:在使用编码右侧的下拉框中选择UTF-8(
上图标号3处)Step4:选中
设为默认的编码方式(忽略C::B的自动检测)(上图标号4处)Step5:点击右下角的
确定按钮,完成编辑器编码设置。Step6
:然后将编辑器内的源文件稍加修改重新保存(保险起见,可以重启code::Blocks软件以确保源文件编码生效)。
4.2.2 方法二(2和4组合)修改源文件编码为GBK编码,将GCC编译器对输入文件-源文件设置为是按GBK编码解析。一、修改源文件编码为GBK编码的具体步骤与上面类似(在下拉框中把UTF-8改为WINDOWS-即可)。修改源文件编码为GBK编码二、修改编译器对输入源文件的解析编码为GBK编码的具体步骤如下:修改编译器输入编码设置Step1:通过执行Code::Blocks软件的菜单栏设置下的编译器子菜单项,进入“编译器设置”窗口。Step2:点击左侧全局编译器设置
按钮(
上图标号1处),继续点击右侧的编译器设置选项卡(
上图标号2处)Step3
:再继续点击下方的其他编译器设置
选项卡(上图标号3处)Step4:在下面的文本框中直接输入-finput-charset=GBK(上图标号4处)Step5
:点击右下角的确定
按钮,完成编译器输入编码设置。
验证:经过前面两种方法的设置,完成编码一致性后,再次进行编译,就已经可以成功通过了(如下图示)。编译成功但显示乱码
但是你会发现程序运行在控制台时显示中文乱码了。此时再回想一下:源文件编码(GBK)+ 编译器输入设置编码(GBK) = 编译通过。但因为GCC编译器默认输出执行文件编码为UTF-8编码,同时Windows控制台默认是GBK编码
,所以此时程序运行在控制台显示中文乱码逻辑上是正常的。
4.3 中文乱码解决针对中文乱码的两种情形(5和8组合、6和7组合)具体解决办法是:4.3.1 解决方法一(6和8组合)设置GCC编译器对输出执行文件是GBK编码,跟Windows控制台默认GBK编码保持一致。修改编译器对输出执行文件编码为GBK编码的具体步骤如下:修改编译器输出编码设置Step1:通过执行Code::Blocks软件的菜单栏设置下的编译器子菜单项,进入“编译器设置”窗口。Step2:点击左侧全局编译器设置
按钮(
上图标号1处),继续点击右侧的编译器设置选项卡(上图标号2处)Step3:再继续点击下方的其他编译器设置
选项卡(上图标号3处)Step4
:在下面的文本框中直接输入-fexec-charset=GBK(上图标号4处)Step5:点击右下角的确定按钮,完成编译器输出编码设置。4.3.2 解决方法二(5和7组合)修改Windows控制台编码为UTF-8编码,以跟GCC编译器对输出执行文件默认UTF-8编码保持一致。修改Windows控制台编码为UTF-8编码的具体步骤如下:Step1:通过快捷键Win+R,弹出的运行窗口中,执行regedit命令,然后点击确定
按钮打开“注册表编辑器”窗口。运行regedit命令Step2:在“注册表编辑器”窗口中依次点击计算机(下图标号1)、HKEY_CURRENT_USER(下图标号2
)、Console(下图标号3)进入注册表编辑器查找
Step3:在右侧选中CodePage项,然后双击弹出“编辑 DWORD(位)值”窗口,依次选择
十进制(
下图标号1处)、把“数值数据”下的 修改为 (下图标号2处)。修改注册表项Step4:点击上图确定
按钮,完成修改(如下图示)。修改注册表完成Step5
:按快捷键F5进行刷新生效。
注1:如果要恢复原数值只需重复同样的步骤,把修改为即可。注2:上面方法面向所有的控制台(如:Windows默认CMD控制台、CodeBlocks控制台、DevCpp控制台、Git CMD控制台等)生效。
注3:如果只需针对特定控制台生效,可以在本步骤基础上,再往下一层,选中具体控制台(如C:_Develop_CodeBlocks_cb_console_runner.exe
),然后通过鼠标右键菜单新建一个DWORD(位)值,该数值名称设为CodePage,数值数据设为(十进制)。然后F5刷新即可生效。
验证:经过上面两种方法的设置,完成编码一致性后,再次在控制台运行软件时就已经是正常显示中英文了(如下图示):编译、运行显示正常注:本文虽是以Code::Blocks集成开发环境为例进行讲解,但其原理针对Windows平台上C语言程序运行的其他控制台(如Windows默认CMD控制台、Git CMD控制台等)也是适用的。结束语相信各位 C 语言初学者们阅读完本文后,应该已经对 Windows 平台C语言(中文)程序在编译时报错的原因及解决办法、在控制台运行时显示中文乱码的原因及解决办法已经有了比较基本的了解掌握,此类问题将不再困扰,接下来就可以愉快地学习其他 C 语言知识了。希望本文能对您有所帮助!喜欢的话就点个赞加关注支持一下哈:)电视机被锁定了,不能换台,怎么办?
电视遥控器不能换台,先尝试下用机顶盒自带按键来换台,如果机顶盒按键能够换台,证明电视机没有问题,是遥控器失灵的问题。造成遥控器失灵的原因有2种情况。
情况一:遥控器没电
如果电视遥控器是因为没电的原因而换不了台,那么只要更换上新的电池,遥控器就可以正常使用。
情况二:遥控器坏了
换上新电池后,遥控器依然无法换台,而且其他功能键也无法使用,证明遥控器坏了。只要买一个新的电视遥控,和机顶盒信号对接后,就可以使用遥控器换台了。
扩展资料
电视遥控器内装有一个叫‘中央处理器’里面包含电视机各种菜单密码信息,电视机的遥控发射器只要发出与之对应的密码就可以实现电视机的遥控。
遥控器使用的频率都是KHZ,是用一定方式对不同的按键进行编码,通过专用的集成电路产生调制波,通过红外线二极管发射出去。电视机接收之后进行解码再执行相应的动作。
不同频率的红外脉冲信号对应不同的命令,而这种脉冲是用石英实现的,通电之后石英的震动频率非常快而且很均匀,所以可以用它实现不同的脉冲频率。
电视遥控器主要依靠集成电路来发送指令,采用了针双列直插式封装(双列直插式封装缩写为DIP),能够版检测到什么时候有按键被按下。采用类似莫尔斯电码的形式对按键信息进行编码,每个按键的编码都各不相同,会将这些信号发送到晶体管进行放大处理,使信号增强。
参考资料
百度百科—电视遥控器