» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

[电脑] [小科普][看图说话][微Geek]为啥会乱码,如何解决

最近Cloud兄遇到了srt iTunes 字幕乱码的问,问之,然后特此写一篇 科普贴子

那么怎么会乱码?
通俗的说
用中文思维的中国人 读 中文的汉字文章 = 正确解码
用日文思维的日本人 读 日文的汉字文章 = 正确解码

用中文思维的中国人 读 日文的汉字文章 = 乱码
用日文思维的日本人 读 中文的汉字文章 = 乱码

那么思维方式=解码方式 文章 = 文件
==============================
那么很明显解决乱码的方式 不是转变解码方式 就是去转变文章。 对上了就不会乱码,但是在计算机界有一种世界语言(Unicode)可以解决这个问题。

============ 看图说话 =============

用WIndows Notepad (记事本) 创建一个文件,内容是
一个英文大写字母 A 回车 一个 汉字 我 回车


让后我们用一个更高级的记事本 跨平台的 MadEdit 来查看一下这个文件
你看当前系统正在使用 简体中文编码 GBK 在解码这个文件


那么看下用日文编码来解码这个文件得到了啥? 一个看似 汉字 又不像的 林.


那么来看用韩文编码来解码这个文件得到了啥? 我居然变成的乖。



那么我们抛开表面现象看看本质,大家知道电脑里啥都是 2进制数字,那么为了显示方便一般用 16进制来看
那么看看这个文件里的数字都是啥
你可以看到 CE D2 就是 "我"这个汉字


那么当我们转换解码方式是 韩文的时候 CE D2 居然是 乖!!!!!!!! 而 CE D2 在日文里是那个林不像林的字.

看到这里你彻底明白了吧 同样的数字用不同的方式解码显示结果是不一样的。
所以你看到不乱码,不代表别人不乱码。

那么问题来了电脑看到 CE D2 它怎么办那么 它怎么知道以中文方式显示还是 日文方式显示 还是韩文方式显示? 它怎么知道在操作它的是哪国人?
答案是猜

不同的电脑猜的方式不一样, Windows 电脑按照系统语言的版本来猜,如果是中文windows就用中文方式显示,如果是日文windows就用日文方式显示。
当然那猜的方式是可以修改的。

那么如果你是 mac 或者 Linux iphone android 则是看系统 Locale 参数来猜或者程序自己猜, 因为不存在 中文 mac 还是 英文 mac 一说只有Windows才分语言发售版本。
那么还有另外一个问题 那就是 使用以上的编码方式 无法实现 一篇文章里 有中文 有日文 有韩文 是不? 只能选一种。

那么一种计算机的国际语言(UNICODE)诞生鸟。
目前常用的 UNICODE 编码叫做 UTF-8 它可以同时显示任何语言。

那么我们把文件调整回 中文方式显示 然后转换编码 成 UTF-8


然后还要添加 BOM



再来看看转换后 的本质变化

看到没有 虽然表面上没有任何变化但是数字变了
E6 88 91 三组 16 进制数字 才组成了我。 而且前面多了 EF BB BF 这个 BOM.

这下问题解决了。 有了 BOM, 电脑就不用猜了,看到 BOM 就知道是 UTF-8 编码 不会再去猜是中文 还是日文了。
而且 三组 8bit 数字 已经足够大了, 可以装下大部分语言的的字符。 不用再去转换啥解码方式。

所以我把这个文件保存

这样传给别人 不管对方是 英文weindows 还是 android还是 mac 就不会是 乱码啦

=======================
乱码文件解决方法
1. 需要一个比 notepad 更强大的文本编辑工具
Windows / Linux 推荐开源的 MadEdit
Mac 推荐 TextWrangler (APP Store)有下载
2. 打开乱码文件
3 看到乱码
4 帮助电脑猜这个文件到底是什么语言 比如选择中文GBK编码
5 看到正常的结果
6 转成 UTF-8 保存
7 以后不再乱码

(提示 如果一个显示正常的 UTF-8 编码的文件 你硬是用 GBK 中文解码 也是乱码哦)
如果一个你显示不乱码的文章怎么保证别人不乱码
另存为 选择编码 UTF-8


===============================
乱码现状
1. 大多数的中文字幕是中文编码的,也就是说除了中文windows 其他地方都存在乱码的风险。
2. 大多数的双语字幕是 UNICODE编码的 因为作者被迫使用的。否则没法同时显示

你要做的不管它是什么语言转成 UTF-8 一劳永逸。


[ 本帖最后由 beterhans 于 2013-3-2 20:53 编辑 ]


本帖最近评分记录
  • cloudchilya 激骚 +6 泪流满面 2013-3-2 23:18
  • squallySP 激骚 +3 泪流满面 2013-3-2 21:26
  • 夜神光 激骚 +6 感谢分享 2013-3-2 20:49

TOP

先顶后看,感谢beterhans大大!



TOP

好像很高端的 样子


TOP

这篇文章起源于我之前一个关于折腾电影导入itunes的帖子。。。没想到lz大大专门发帖给出教程,太感动了,辛苦了!

TOP

posted by wap, platform: Galaxy Nexus

还有谁记得当年南极星

TOP

有谁记得richwin

TOP

楼主经常发这些技术性的帖子 很有价值啊

TOP

我说一下在mac下的转码办法吧?下载并安装text wrangler,然后打开某个srt字幕文件之后,选择Fire--》reopen using encoding。。。----》选择你认为对的编码方式,比如Chines (GB18030)---》之后在窗口最下方的编码方式中选择Unicode(UTF-8)with BOM,然后存盘,完成。。。
本帖最近评分记录
  • beterhans 激骚 +2 精品文章 2013-3-2 22:22

TOP

我一直不明白,为什么有些录入软件为什么不默认utf8?
难道是中文字库比gb 字库小?

TOP

引用:
原帖由 chronicle1st 于 2013-3-2 22:50 发表
我一直不明白,为什么有些录入软件为什么不默认utf8?
难道是中文字库比gb 字库小?
问微软

TOP

posted by wap, platform: XiaoMi (MI-ONE Plus)

南极星啊。。。。。以前打日文游戏、台湾汉化游戏必备。

TOP

发新话题
     
官方公众号及微博