万年历 购物 网址 日历 小说 | 三峰软件 天天财富 小游戏 视频推荐 小游戏
TxT小说阅读器
↓小说语音阅读,小说下载↓
一键清除系统垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放,产品展示↓
首页  日历2023  日历2024  日历2025  日历知识  | 每日头条  视频推荐  数码知识 两性话题 情感天地 心理咨询 旅游天地 | 明星娱乐 电视剧  职场天地  体育  娱乐 
日历软件  煮酒论史  历史 中国历史 世界历史 春秋战国 三国 唐朝 宋朝 明朝 清朝 哲学 厚黑学 心理学 | 文库大全  文库分类 
电影票房 娱乐圈 娱乐 弱智 火研 中华城市 仙家 六爻 佛门 风水 钓鱼 双色球 戒色 航空母舰 网球 乒乓球 足球 nba 象棋 体操
    
  知识库 -> 数码 -> 国外程序员也烫屯锟斤拷吗? -> 正文阅读

[数码]国外程序员也烫屯锟斤拷吗?

[收藏本文] 【下载本文】
如果是/不是,为什么?
(2019-07-20 更新「朹方」,見底部)
經常跟亂碼打交道的路過。。。
簡單答案:全世界都有類似的情況,但看到的和我們可能不一樣。
具體來說嘛~
首先,「烫烫屯屯」和「锟斤拷」是兩個不同的問題,但都和 GBK 編碼相關。
另外還有人提到「許蓋功」、「变巨」、「林技夸」、「朹方」什麼的,下面分別來談~
一、「烫烫屯屯」
這是 Visual Studio 在調試模式下編譯的 C/C++ 程序中可能遇到的東西。源自 VC++ 編譯器在調試模式下會將未初始化的內存空間用 0xCC 和 0xCD 填充。但由於 Windows 控制台在不同語言下會用不同的編碼,不同語言下效果會不一樣。
比如同樣是「八個 0xCC 字節」和「八個 0xCD 字節」:
簡體中文 Windows 採用 CP 936 編碼(即 GBK),"\xCC\xCC" 為「烫」、"\xCD\xCD"為「屯」,因此顯示「烫烫烫烫」和「屯屯屯屯」。英文 Windows 採用 CP 437 編碼(又稱 IBM 437):"\xCC"為「╠」、"\xCD" 為「═」,因此顯示「╠╠╠╠╠╠╠╠」和「════════」。
繁體中文 WIndows 採用 CP 950 編碼(即 Big5):"\xCC\xCC" 為「昍」、"\xCD\xCD"為「迋」,因此會顯示「昍昍昍昍」和「迋迋迋迋」。
日文 Windows 採用 CP 932 編碼(即 Shift-JIS):"\xCC"為「?」、"\xCD" 為「?」,因此顯示「????????」和「????????」。
其他語言下基本會被直接當成普通亂碼或普通 bug 了……(要怪就只能怪 GBK 的這兩個碼位恰好都是常用字了吧2333)
二、「锟斤拷」
如果數據來自網絡自動收集處理的話經常會有程序將編碼判斷錯的問題。所以搜索引擎的網頁資料是重災區。
「锟斤拷」是在 GBK 和 UTF-8 編碼的兩種數據混用時會發生的現象。
要產生「锟斤拷」這個串,需要幾個步驟——
把一段字節序列用錯誤的編碼轉成 Unicode 字符序列(一般用字符串來製作索引),並使用 Unicode 指定的替代用字符「U+FFFD」替代所有轉換失敗的字符。將這段字符序列以 UTF-8 編碼儲存為字節序列(字符串需要採用一個統一的內部編碼來保存,一般用 Unicode 的某種編碼),連續的兩個「U+FFFD」會表示為 "\xEF\xBF\xBD\xEF\xBF\xBD"。再將這段字節序列錯誤地以 GBK 編碼呈現為字符序列(程序 bug,把內部數據編碼搞混了),即出現「锟斤拷」。
如果把上面的 GBK 換成 Big5,出現的會是「嚙踝蕭」。
換成 IBM 437,出現的會是「∩┐╜∩┐╜」。
Shift-JIS 下是不合法編碼,會變成什麼樣(或者能不能出現這個 bug)就不一定了。
所以其他語言下估計也會直接被當成普通亂碼什麼的……(大概還是得怪 GBK 這三個碼位不僅兩個是常用字而且三個字之間還有奇妙的意義關聯了吧2333)
三、「許蓋功」
這是由於 Big-5 碼一些字符的第二字節跟 ASCII 下大量字符重疊,而某些字符在 Unix 命令行、程序代碼中可能有特殊作用,往往導致字符串被不正確地解釋。這只會發生在 Big-5 環境下。這就是 Big-5 的設計缺陷了。。
其實 GBK 下偶爾也有類似的情況,比如某些用 GBK 編碼處理 LRC 歌詞的播放器。由於 GBK 某些字第二字節 0x5B 與 LRC 標籤起始字符「[」重疊,如果直接用按字節來找起始字符的話會導致這些不幸的字與它後面的文本全被當成標籤。。而且這一般會在日文歌詞中發生,簡體中文一般遇不到所以還不太有開發者關注……當然如今普遍是內部統一用 Unicode 字符處理,只要能正確識別文件編碼就不太有這種問題了。
附:「变巨」「林技夸」
這是在簡體中文系統運行為其他語言系統開發的程序時,由於程序內的文本並未使用相符的編碼,也未使用 Unicode 於是編碼錯亂所致。
「曹操」用 Big5 編碼成字節序列後,再被誤當成 GBK 轉為字符得到的即是「变巨」。
類似的還有「三國志曹操傳」變成「 ?T瓣в变巨肚」。第一個字節在 GBK 中是不合法編碼,在 Windows 上呈現時會變成問號或直接忽略,現今 Unix 諸系統一般會用 U+FFFD 顯示。(另外注意那個「в」是西里爾字母小寫 ve,不是 B)
此外還有反過來的情況,比如在內嵌字型的 Big5 遊戲中,字符「曹操」被系統用 GBK 字節序列表示,但會被內嵌的字型當成 Big5 而顯示成字符「羚紱」。
而「???」(韓文常見的句尾)用 CP 949 編碼(即 KSC5601 編碼),再被誤作 GBK 轉為字符得到的即是「林技夸」。
2019-07-20 再附:「東方」→「朹方」
這個也算是上面「許蓋功」的 GBK 版了。它主要出現在 Windows 一些經過解包或網絡傳輸之類的文件名中,「東方」會莫名變成「朹方」。原因是「東」的 GBK 表示為 "\x96\x7C",其中第二字節 0x7C 恰與 ASCII 的 "|" (U+007C) 相同,於是一些只會按字節處理文件名的軟件,會誤以為它是 Windows 文件名禁止出現的字符 "|",就將其替換為下劃線 "_" (U+005F),即換成字節 0x5F,於是「東」"\x96\x7C" 就變成了「朹」"\x96\x5f"。
国外当然也有乱码问题。
这大约是2002年的故事了。大意是一个法国人给俄罗斯人寄东西,收件地址是俄文,西里尔字母在俄罗斯用KOI8-R编码,而欧洲用ISO-8859-1字符集,于是就变成一堆变音字母。法国这位老兄也不核实一下就硬抄上去。包裹到达俄罗斯后,邮递员并没有退件,而是手动查字符集,用红笔写下正确字符,并完成投递。


https://text-mode.tumblr.com/post/31409503070/russian-postmen-fix-an-error-caused-by-an
日本的朋友也遇到了同样的问题。如果你是俄罗斯邮递员,请发挥爱岗敬业的精神,帮助他找出正确的收件地址。


https://commons.wikimedia.org/wiki/File:Card_with_a_cyrillic_address_in_wrong_encoding.jpeg
公布答案:俄罗斯叶卡捷琳堡


有图有真相!我在美国药店买药的收据:


只要涉及到DBCS(double-byte character set 双字节字符集)的场合,都可能出现类似的问题。
服务员,给我来一份条码||||鱼头,外加唰T潺和牛咕嗔。




要来点锟斤拷吗?


去微博翻出了Ubuntu for windows公开测试时我打开bash时出现的bug… 笑了我一整天


乱码问题是全世界都存在的问题。2001年第一次去台湾考察的时候,看到921大地震纪念馆里一张剖面图上出现的乱码时,我专门拍下来了,不光是程序员,CAD画图员一样经常碰到字体不同乱码的情况啊。这个是全世界都存在的问题。
0xdeadbeef?
0x0badf00d?
比如??


許蓋功。
只要存在编码问题就一定会存在这种现象。你以为老外就不用utf-8和iso 8859?而且老外又不是只说英语,法语德语西班牙语日语都是要编码的。
哈哈哈看到题目还反应了一下
不會。
因爲這幾個問題都跟 GBK 有關。人家老外沒事用什麼 GBK 啊。
这和中文编码方式有关吧,老外一般不用中文吧,不过在国外的华人程序员也许有这种问题呢!
英文世界最常用的两种编码字符集:ISO-8859-1与Windows-1252,就是不完全兼容
会碰到同样的现象,但是显示的肯定不会是锟斤拷烫烫烫之类的
肯定有乱码,但不一定是「烫屯锟斤拷」,而是其他离谱的字符。
另外,我很好奇国外的程序员是否也把乱码现象用乱码中出现的文字来称呼。
......................................
[收藏本文] 【下载本文】
   数码 最新文章
为什么大型直升机都是头顶上一个大螺旋桨的
如何评价 龙芯老总胡伟武的爆料:下一代八核
想要入手一款能畅玩市面上所有游戏的游戏本
2024 年扫地机器人有哪些推荐?
iOS的墓碑机制这么厉害,为什么Windows、Li
如何看待华为发布会被指造假?
如何看待华为 Pura 70 系列超高速风驰闪拍功
碎纸机是干嘛用的,撕个纸还要用机器,真是
小米真的是为国为民吗?
华为发布 MatePad 11.5 S 平板电脑,该产品
上一篇文章      下一篇文章      查看所有文章
加:2024-04-02 22:39:36  更:2024-04-02 22:41:59 
 
娱乐生活: 电影票房 娱乐圈 娱乐 弱智 火研 中华城市 印度 仙家 六爻 佛门 风水 古钱币交流专用 钓鱼 双色球 航空母舰 网球 乒乓球 中国女排 足球 nba 中超 跑步 象棋 体操 戒色 上海男科 80后
足球: 曼城 利物浦队 托特纳姆热刺 皇家马德里 尤文图斯 罗马 拉齐奥 米兰 里昂 巴黎圣日尔曼 曼联
  网站联系: qq:121756557 email:121756557@qq.com  知识库