UTF-8檢測

W3C上 提供了一種複雜的檢測方法:

[/x09/x0A/x0D/x20-/x7E]              # ASCII
| [/xC2-/xDF][/x80-/xBF]             # non-overlong 2-byte
|  /xE0[/xA0-/xBF][/x80-/xBF]        # excluding overlongs
| [/xE1-/xEC/xEE/xEF][/x80-/xBF]{2}  # straight 3-byte
|  /xED[/x80-/x9F][/x80-/xBF]        # excluding surrogates
|  /xF0[/x90-/xBF][/x80-/xBF]{2}     # planes 1-3
| [/xF1-/xF3][/x80-/xBF]{3}          # planes 4-15
|  /xF4[/x80-/x8F][/x80-/xBF]{2}     # plane 16


drupal裏有一個更簡單的方 法:preg_match('/^./us', $text) == 1

字符串越長,準確率越高。當然,檢測不可能百分百準確,比如說GBK的“訊”字就不能正確檢測。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章