顯示廣告
隱藏 ✕
※ 本文為 dinos 轉寄自 ptt.cc 更新時間: 2014-06-30 22:22:09
看板 PHP
作者 LPH66 (1597463007)
標題 Re: [請益] 字編碼問題
時間 Mon Jun 30 20:58:35 2014


※ 引述《m7m123d ( )》之銘言:
: 在程式裡用pdftotext的方式將PDF檔轉成UTF-8的txt文字檔
: 接著抓出txt裡面的一段文字
: $_str = '生日:066年11月28日';
: $_str = str_replace("生日:", '', $_str);
: $_str = str_replace("年"    , '', $_str);
: $_str = str_replace("月"    , '', $_str);
: $_str = str_replace("日"    , '', $_str);
: echo $_str;
: Output:066年1128
: 我手動複製沒被替換過去的「年」做替換,發現可行,
: google到是字元代碼不相同的問題,這個狀況第一次遇到,
: 想問一下版上大家有哪些經驗,想伸個關鍵字,謝謝。
有這種狀況的字其實不多

Unicode 有一區專門存放這種字: CJK Compatibility Ideographs  U+F900~U+FAFF

http://unicode-table.com/en/sections/cjk-compatibility-ideographs/
CJK Compatibility Ideographs — Unicode character table
[圖]
All Unicode Symbols with Names and Descriptions on One Page: ❤ ☀ ★ ☂ ☻ ♞ ☯ ☭ ☢ € → ☎ ❄ ♫ ✂ ▶ ✇ ♎ ⇧ ☮ ♻ ⌘ ⌛ ☘ ✈ ✔ ☊ ♔ ♕ ♖ ☦ ✝ ❖ ➎ ♠ ♣ ♥  ♦ ♂ ♀ ❂ ❃ ✒ ...

 

http://www.unicode.org/charts/PDF/UF900.pdf

它是用來存放在 Unicode 所參照的來源編碼裡, 一個字被重覆編碼的狀況

這時其中一個會對應到正常的字 (U+4E00~U+9FFF 裡的)

另一個就會對應到這邊來

狀況中的"年"字是 U+F98E, UTF-8 編碼是 EF A6 8E, PHP 可用 "\xEF\xA6\x8E" 表示

(記得用雙引號, 否則 \x 會看不懂;

 當然如果有這種字可複製也可以用複製的, 不過就要寫個註解)

不過由於字不多加上會出現這種字只有很有限的狀況, 碰到了再解就好...

(絕大多數情形下所輸入的字都會先對映到正常的範圍裡

 加上這區裡的字有七成來自韓文編碼

 可以說除非文件曾經經過韓文編碼不然幾乎不會有這種字)

--
LPH  [acronym]
= Let Program Heal us
                        -- New Uncyclopedian Dictionary, Minmei Publishing Co.

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.30.32
※ 文章網址: http://www.ptt.cc/bbs/PHP/M.1404133119.A.6A0.html

--
※ 看板: dinos 文章推薦值: 0 目前人氣: 0 累積人氣: 110 
作者 LPH66 的最新發文:
  • Re: [請益] 字編碼問題 - PHP 板
    作者: 140.112.30.32 (台灣) 2014-06-30 20:58:35
    有這種狀況的字其實不多 Unicode 有一區專門存放這種字: CJK Compatibility Ideographs U+F900~U+FAFF CJK Compatibility Ideogra …
  • +2 Re: [請益] Unicode, UTF-8, UTF-16, UTF-32? - Web_Design 板
    作者: 123.195.39.85 (台灣) 2014-03-29 21:50:54
    ff fe 00 00 其實名字以 UTF 開頭的編碼還不只這些, 只是這些相對常用而已 其中最常用的是 UTF-8 UTF-16 也不少見 UTF-32 則比較沒什麼看到, 主要還是浪費空間 (一個 …
    6F 2推
  • +1 Re: [機統] 玩遊戲遇到的期望值問題 - Math 板
    作者: 180.218.108.125 (台灣) 2012-12-02 21:44:46
    我拿 E_3 來解釋 其他類推 當對面有三點影響力時 你骰一次骰子 有 6/36 的機會移掉三點以上 結束了 4/36 的機會只移掉兩點 還要額外 E_1 次才能移掉 5/36 的機會只移掉一點 還要 …
    1F 1推
  • +1 Re: [機統] 玩遊戲遇到的期望值問題 - Math 板
    作者: 180.218.108.125 (台灣) 2012-12-02 19:52:08
    令 E_k 為對方有 k 點影響力 要全部移除的期望行動力點數 則我們有 E_1 = 1 + (21/36)E_1 E_2 = 1 + (5/36)E_1 + (21/36)E_2 E_3 = 1 + …
    1F 1推
  • [閒聊] hash function - PHP 板
    作者: 180.218.108.125 (台灣) 2012-10-16 20:16:51
    想了好一會兒不知道要下什麼標題... 只是正好上面兩篇提到的東西有些地方意外的有點共通點 所以集合起來一起回一篇 XD 從上上篇的推文起頭好了 md5 的第二個參數是用來把 md5 所算出來的結果其十 …
    7F
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇