怎么确认某文档的编码类型

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
lulusee
帖子: 69
注册时间: 2009-05-14 0:51

怎么确认某文档的编码类型

#1

帖子 lulusee » 2011-12-22 21:19

如题
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 怎么确认某文档的编码类型

#2

帖子 eexpress » 2011-12-22 21:23

mimetype xxx
file xxx
enca xxxx
不明确你要那种类型。
● 鸣学
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 怎么确认某文档的编码类型

#3

帖子 YeLee » 2011-12-23 12:37

难道楼主想要问文件头的问题吗
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

Re: 怎么确认某文档的编码类型

#4

帖子 自由建客 » 2011-12-23 16:34

尝试各种编码,能读通的就算是了。
490365333ibmc
帖子: 413
注册时间: 2011-08-04 4:19
系统: Ubuntu 12.10

Re: 怎么确认某文档的编码类型

#5

帖子 490365333ibmc » 2011-12-24 12:17

纯文本文件无文件头(最多有BOM),其本质也就是二进制流,按照不同的编码规范能够解析成不同的字符串。

所谓文本,只不过是说能够按照一定的编码规则解析成有意义的字符串的二进制流,任何一个文件都可以这样解析,但并非任何一个文件都可以解析出有意义的字符串。
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山

Re: 怎么确认某文档的编码类型

#6

帖子 cao627 » 2011-12-24 18:34

490365333ibmc 写了:纯文本文件无文件头(最多有BOM),其本质也就是二进制流,按照不同的编码规范能够解析成不同的字符串。

所谓文本,只不过是说能够按照一定的编码规则解析成有意义的字符串的二进制流,任何一个文件都可以这样解析,但并非任何一个文件都可以解析出有意义的字符串。
正好借此机会问下楼上
有一串二进制流,用A文本编辑软件打开显示正常文本,用B文本编辑软件打开显示为乱码。
现将A编辑窗口中的文本,复制粘帖到B编辑窗口,为什么被复制粘帖的文本能保持其文本显示,而不是变成乱码—既然软件B会把这串2进制流解析成乱码。
头像
chenyehong90
帖子: 315
注册时间: 2010-10-03 17:19

Re: 怎么确认某文档的编码类型

#7

帖子 chenyehong90 » 2011-12-24 18:41

cao627 写了:
490365333ibmc 写了:纯文本文件无文件头(最多有BOM),其本质也就是二进制流,按照不同的编码规范能够解析成不同的字符串。

所谓文本,只不过是说能够按照一定的编码规则解析成有意义的字符串的二进制流,任何一个文件都可以这样解析,但并非任何一个文件都可以解析出有意义的字符串。
正好借此机会问下楼上
有一串二进制流,用A文本编辑软件打开显示正常文本,用B文本编辑软件打开显示为乱码。
现将A编辑窗口中的文本,复制粘帖到B编辑窗口,为什么被复制粘帖的文本能保持其文本显示,而不是变成乱码—既然软件B会把这串2进制流解析成乱码。
中間經過剪貼板了,會轉換。
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山

Re: 怎么确认某文档的编码类型

#8

帖子 cao627 » 2011-12-24 19:20

chenyehong90 写了:
cao627 写了:
490365333ibmc 写了:纯文本文件无文件头(最多有BOM),其本质也就是二进制流,按照不同的编码规范能够解析成不同的字符串。

所谓文本,只不过是说能够按照一定的编码规则解析成有意义的字符串的二进制流,任何一个文件都可以这样解析,但并非任何一个文件都可以解析出有意义的字符串。
正好借此机会问下楼上
有一串二进制流,用A文本编辑软件打开显示正常文本,用B文本编辑软件打开显示为乱码。
现将A编辑窗口中的文本,复制粘帖到B编辑窗口,为什么被复制粘帖的文本能保持其文本显示,而不是变成乱码—既然软件B会把这串2进制流解析成乱码。
中間經過剪貼板了,會轉換。
谁做了转换?剪贴板?
当我选中软件A中的一行文本,按复制,此时的实质是不是:在软件A管理的内存中被软件A解释成那行文本的那串2进制流,被读取写进剪贴板管理的内存区域里。
然后,当我在软件B中按粘帖,其实质是不是:剪贴板管理的内存区域里的那串2进制流,被读取写进软件B管理的内存区域里。
结果:软件B中会显示一行乱码。因为:“有一串二进制流,用A文本编辑软件打开显示正常文本,用B文本编辑软件打开显示为乱码。”
要么我的分析不对。
要么那串2进制流在这个分析的过程中必然有一次转换,变成另一个2进制流,能被软件B解析成文本,但转换是在哪个环节完成的?
头像
chenyehong90
帖子: 315
注册时间: 2010-10-03 17:19

Re: 怎么确认某文档的编码类型

#9

帖子 chenyehong90 » 2011-12-24 21:15

串流的轉換過程應該是發生在編輯器保存時。
上次由 chenyehong90 在 2011-12-24 22:15,总共编辑 2 次。
头像
chenyehong90
帖子: 315
注册时间: 2010-10-03 17:19

Re: 怎么确认某文档的编码类型

#10

帖子 chenyehong90 » 2011-12-24 21:57

應該不是編輯器的內存
上次由 chenyehong90 在 2011-12-24 22:10,总共编辑 1 次。
头像
chenyehong90
帖子: 315
注册时间: 2010-10-03 17:19

Re: 怎么确认某文档的编码类型

#11

帖子 chenyehong90 » 2011-12-24 22:06

chenyehong90 写了:
chenyehong90 写了:
cao627 写了:
chenyehong90 写了:
cao627 写了:
490365333ibmc 写了:纯文本文件无文件头(最多有BOM),其本质也就是二进制流,按照不同的编码规范能够解析成不同的字符串。

所谓文本,只不过是说能够按照一定的编码规则解析成有意义的字符串的二进制流,任何一个文件都可以这样解析,但并非任何一个文件都可以解析出有意义的字符串。
正好借此机会问下楼上
有一串二进制流,用A文本编辑软件打开显示正常文本,用B文本编辑软件打开显示为乱码。
现将A编辑窗口中的文本,复制粘帖到B编辑窗口,为什么被复制粘帖的文本能保持其文本显示,而不是变成乱码—既然软件B会把这串2进制流解析成乱码。
中間經過剪貼板了,會轉換。
谁做了转换?剪贴板?
当我选中软件A中的一行文本,按复制,此时的实质是不是:在软件A管理的内存中被软件A解释成那行文本的那串2进制流,被读取写进剪贴板管理的内存区域里。
然后,当我在软件B中按粘帖,其实质是不是:剪贴板管理的内存区域里的那串2进制流,被读取写进软件B管理的内存区域里。
结果:软件B中会显示一行乱码。因为:“有一串二进制流,用A文本编辑软件打开显示正常文本,用B文本编辑软件打开显示为乱码。”
要么我的分析不对。
要么那串2进制流在这个分析的过程中必然有一次转换,变成另一个2进制流,能被软件B解析成文本,但转换是在哪个环节完成的?
你把B裏面的亂碼復制到A,那兩邊就都是亂碼了。我猜測的,你在屏幕上選取的內容是經過解碼後屏幕顯示程序管理的內存,所以在哪個編輯器上顯示都是一致的。
490365333ibmc
帖子: 413
注册时间: 2011-08-04 4:19
系统: Ubuntu 12.10

Re: 怎么确认某文档的编码类型

#12

帖子 490365333ibmc » 2011-12-25 21:28

我晕了, :em20 这种问题需要这么纠结么?
编辑器复制粘贴复制的是文本(目测以系统内部编码存储),不是原始二进制流
490365333ibmc
帖子: 413
注册时间: 2011-08-04 4:19
系统: Ubuntu 12.10

Re: 怎么确认某文档的编码类型

#13

帖子 490365333ibmc » 2011-12-25 21:42

490365333ibmc 写了:我晕了, :em20 这种问题需要这么纠结么?
编辑器复制粘贴复制的是文本(目测以系统内部编码存储),不是原始二进制流
就比如说,“我是中文”,原始文件以GBK编码,Linux内部使用UTF-8,软件A能够识别GBK,于是将GBK转换到UTF-8,这样屏幕上才可以显示文字,因为Linux只认识UTF-8。软件B不能够识别GBK,于是把原始二进制流默认当作Latin-1,转换到UTF-8,这样屏幕上显示出所谓的乱码。

A复制到B的过程是:

代码: 全选

1  A将原始的二进制流按GBK编码规则转换到UTF-8,得到新的二进制流。
2  A把第一步得到的二进制流[b]直接[/b]送入剪贴板。
3  B从剪贴板[b]直接[/b]获取二进制流。
4  B知道上一步得到的这串二进制是剪贴板里面直接获取的,所以现在B知道得到的二进制流是UTF-8。
5  B按照UTF-8编码规则解析第三步得到的二进制流。(其实就是UTF-8转换到UTF-8,所以实际上直接把第三步得到的二进制流送给屏幕,屏幕把文字显示出来)
回复