直接用输入法打出来的字是什么编码的呢?我们常见的内码有gb2312 big5 unicode什么的.我想问的是,我直接用输入法敲出来的字是什么编码的呢?比如如下3个情景:1、比如说我要是用c#/java写程序,
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/18 13:11:34
直接用输入法打出来的字是什么编码的呢?我们常见的内码有gb2312 big5 unicode什么的.我想问的是,我直接用输入法敲出来的字是什么编码的呢?比如如下3个情景:1、比如说我要是用c#/java写程序,
直接用输入法打出来的字是什么编码的呢?
我们常见的内码有gb2312 big5 unicode什么的.我想问的是,我直接用输入法敲出来的字是什么编码的呢?
比如如下3个情景:
1、比如说我要是用c#/java写程序,这俩语言本身是unicode的,我在代码里直接敲进去的字符串,也都是unicode的,集成开发环境用vs2010和eclips都用起来没问题
2、但是如果用Python2.7的话,不在第一行加上coding:xxxxx汉字就都会乱码,但是不管我这里写的是utf-8还是python的IDLE自动识别的汉字编码,都是能正常显示中文的,但是一种是变长的(utf-8),一种是两字节的(IDLE识别的那种)都能正常显示,这是为什么呢?
3、同样是输入法敲进去的字,我写到记事本里,保存,记事本默认是按ANSI寸的,编码又变了.
那么输入法敲出来的是什么编码的字符呢?
根据上面情况1可以有假设:输入法打出来的字就是unicode编码的
那么情况2呢?3呢?
用输入法的时候系统究竟发生了什么?
是应该假设软件会向系统要指定编码的输入?还是说输入法打出来的字就是一种编码的,在输到程序里的时候转换了?
前续对 L_o_o_n_i_e的追问:
-2. 输入法输出的编码是固定的,在传入程序的之后,程序对编码进行了转换,转换成程序自己使用的那种然后存储到变量/内存里
我上面的两个假设是否正确呢?如果从一般想法的角度讲,第二个假设应该是-1成立.而且我也看到有人说"终于有更多的输入法支持unicode了"之类的话.
直接用输入法打出来的字是什么编码的呢?我们常见的内码有gb2312 big5 unicode什么的.我想问的是,我直接用输入法敲出来的字是什么编码的呢?比如如下3个情景:1、比如说我要是用c#/java写程序,
"直接用输入法打出来的字" -- 这里含好几个过程.
(1)当你用键盘打字时,从键盘进入计算机的是ASCII码序列.
(2)“输入法”把 ASCII码序列 转换成 输入法 自己规定的 码.
(3)你在一个窗上看到的东西,例如 notepad 的文本编辑窗,wordpad 的文本编辑窗,或 DOS 黑窗(控制台命令窗)那是 把 “输入法自己规定的码”显示出来,这里有一个编码到字体(font)到bitmap点阵图形的转换.只有当它们匹配时才能显示出有意义的 字的形状.否则看上去是“乱码”.
以DOS 黑窗为例,只有正确设置它的 所谓 代码页(code page) ,才能显示出有意义的字形.
GBK的code page是CP936;
BIG5的code page是CP950;
GB2312的code page是CP20936;
DOS 命令 CHCP 不带参数 可以显示 当前 “代码页”,加参数可以改变 “代码页"
例如:chcp 936 例如:chcp 437
(4)从文本编辑窗 到 存放的文件 也有 代码的转换.
例如,notepad,可以存放为 unicode 小端码,unicode 大端码,UTF-8码.
unicode 文件会在文件头自动添加 unicode BOM ( Byte-Order Mark)
---
所以,直接用输入法打出来的字是什么编码的呢,具体情况具体分析,不可一概而论.