作者art1 (人,原來不是人)
看板Python
標題[問題] 看起來像是同一個字,印到圖上卻不一樣
時間Wed Oct 7 06:12:36 2020
一開始以為這問題是全字庫字體沒辦法正確顯示的問題,研究後發現是詭異無法解釋的
問題
平台是 google 的 colab,使用的字型是全字庫 TW-Kai-98_1.ttf
使用的繪圖函式庫是
from PIL import Image, ImageFont, ImageDraw
from IPython.display import Image as iii (使用這個是因為 plt 印出來的圖太小)
https://i.imgur.com/362DbO9.png
看起來都是同一個字「路」,圖片印出來是不一樣的結果
第一個路字 yyy 是我用 gcin 輸入法輸入的
第三個路字 ggg 則是把第一個路字複製貼上
第五個路字 eee 是從本機 VSCode 用 gcin 輸入法輸入後複製貼過來的
第二個路字 ttt 是從網路上找到複製下來貼上去的
第四個路字 sss 一樣是第二個路字複製貼上
第六個路字則是與第五個路字在同一個檔案中,但來源也是網路上複製貼上
使用
https://www.ifreesite.com/unicode-ascii-ansi.htm 這網站的編碼轉換工具
第一個路字 yyy 的編碼是 \u8def,第二個路字 ttt 的編碼是 \uf937
其實不只這個字出問題而已,想請教像這種長相一樣,編碼卻不一樣導致輸出有問題的
情況該怎麼解決?
--
「看在上帝的份上,我們不能當著孩子的面槍殺他的父親!」
「那我們就連孩子一起幹掉!」
「第一槍打中的是那個天真的孩子,第二槍是抱著孩子的母親。第三槍
停頓了三秒,當難以致信的父親擦拭著臉上愛子的腦漿從震驚中醒轉
過來,慢慢的轉頭看向停車的地方,分辨出是誰在攻擊他後,第三顆
子彈才將他的腦殼打飛。」 ─摘自〈狼群〉
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.173.36.83 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1602022362.A.C6E.html
推 TuCH: 來源網站? 10/07 08:07
推 ddavid: 其實我想問的是你「為什麼」要解決,你想要解決「什麼」 10/07 10:05
推 ddavid: 如果來源就是那樣,這表示他就是用那個字,你用不存在該字 10/07 10:08
→ ddavid: 的字型來顯示有問題是合理的情況 10/07 10:08
→ ddavid: 如果你想要全部轉換成同一個你認為能正確顯示的字,那就是 10/07 10:09
→ ddavid: 要像簡繁體轉換一樣,建立一個字詞庫把所有可能發生此問題 10/07 10:10
→ ddavid: 的字與要轉的目標字建表,全部取代處理 10/07 10:10
→ ddavid: 基本上應該沒有任何取巧的方法 10/07 10:11
→ alvinlin: 看起來是從某來源抓取的一些字然想用圖片顯示結果發現有 10/07 13:41
→ alvinlin: 些字可以顯示有些字不行所以想弄懂怎麼解決。建議用regx 10/07 13:41
→ alvinlin: 。在Unicode 裡每個國家的編碼是有特定區間的。請參考sh 10/07 13:41
→ alvinlin: orturl.at/ijnG0 10/07 13:41
→ alvinlin: shorturl.at/ijnG0 10/07 13:42
→ art1: 感謝樓上提供的資訊 10/07 17:45
推 ddavid: 真的有建好的表耶,那就好辦了 10/07 17:53
→ art1: 有建好的表真的變輕鬆很多 10/07 22:08