我試圖解析字符串,分裂它究竟是不是一個字母或數字處理丹麥特殊字符
$parse_query_arguments = preg_split("/[^a-z0-9]+/i", 'København');
,構建一個MySQL查詢。 即使我跳過preg_split並嘗試直接輸入字符串,它會將其分成兩個不同的字符串'K'和'benhavn'。
我該如何處理這些問題?
我試圖解析字符串,分裂它究竟是不是一個字母或數字處理丹麥特殊字符
$parse_query_arguments = preg_split("/[^a-z0-9]+/i", 'København');
,構建一個MySQL查詢。 即使我跳過preg_split並嘗試直接輸入字符串,它會將其分成兩個不同的字符串'K'和'benhavn'。
我該如何處理這些問題?
解釋的。如果你使用像a-z
文字字符,那麼它不會匹配重音的人你可以嘗試像\p{L}
。您可能需要使用各種可用的character classes做更通用的匹配:
/[[:alpha:][:digit]]/
的[:alpha:]
集是在範圍上比a-z
廣泛得多。記住字符匹配是基於字符代碼完成的,並且a-z
以字面順序依據索引採用a
和z
之間的字符。字符如ø
位於此範圍之外,即使它們位於字母順序之間。
計算機以ASCII-abetical(UNICODEical?)順序工作。
它如何「打破」? – RandomSeed
使用不同的字符集...像'utf-8' ... [UTF-8一路貫穿](http://stackoverflow.com/questions/279170/utf-8-all-the-way-通過) – naththedeveloper