我在文本中有一個奇怪的短劃線,這在str_replace
中未被檢測到。PHP中的奇怪短劃線字符
下面是一個例子:
Sun: 10:00 – 3:00pm
我不知道,如果儀表板會顯示在這裏..但是當它插入我的表,這就像與一個方盒子字符0096
它看起來很像–
- 查看源代碼時,沒有特殊字符,只有短劃線。
str_replace('–', '', $var);
上面的替換似乎沒有抓住它,有沒有其他人有過這種麻煩?
我在文本中有一個奇怪的短劃線,這在str_replace
中未被檢測到。PHP中的奇怪短劃線字符
下面是一個例子:
Sun: 10:00 – 3:00pm
我不知道,如果儀表板會顯示在這裏..但是當它插入我的表,這就像與一個方盒子字符0096
它看起來很像–
- 查看源代碼時,沒有特殊字符,只有短劃線。
str_replace('–', '', $var);
上面的替換似乎沒有抓住它,有沒有其他人有過這種麻煩?
這是一個en dash。在PHP中,最便攜的方式得到它與html_entity_decode
:
$endash = html_entity_decode('–', ENT_COMPAT, 'UTF-8');
echo str_replace($endash, '(en dash)', 'Sun: 10:00 – 3:00pm');
請注意,這僅適用於如果你的網站的編碼是UTF-8 和你的編輯器編碼(或第三個參數來str_replace
編碼)也是如此。如果您使用其他編碼(並且您應該爲網站和編輯器使用相同的編碼),請將html_entity_decode的第三個參數替換爲其名稱。
恩-
短跑我們看慣了
EM –
短跑是我們應該用大部分的時間,其中使用「 - 」。
基本上,這是一個語法的東西。
在維基百科上閱讀起來:http://en.wikipedia.org/wiki/Dash
在Mac(美國鍵盤佈局),我把它按下Alt + - ,你一樣得到_用SHIFT + _
你不需要任何特殊處理,因爲它是一些中國的象徵。這是一個有效的角色。像這樣對待它:str_replace('–', 'em dash');
。
http://php.net/manual/en/function.str-replace.php#102465 周杰倫建議
$str = str_replace(chr(150), '-–', $str); // endash
$str = str_replace(chr(151), '--', $str); // emdash
另一種可選擇的,如果其他的答案不適合你,就像在我的情況,這對我的作品。
$title = "Hunting, Tactical & Outdoor Optics eCommerce Store ΓÇô $595,000 ΓÇö SOLD";
$title = str_replace(html_entity_decode('–', ENT_COMPAT, 'UTF-8'), '-', $title);
$title = str_replace(html_entity_decode('—', ENT_COMPAT, 'UTF-8'), '-', $title);
你應該給我們[base64_encode](http://www.php.net/base64_encode)格式的字符串,以便它保存的二進制安全。這使我們能夠識別角色。 – goat 2012-01-27 00:32:19
只是問明顯,但你保存str_replace的返回值?即'$ var = str_replace(' - ','',$ var);'str_replace不直接對字符串進行操作。 – tangrs 2012-01-27 00:32:43
你的桌子使用什麼字符集? – 2012-01-27 00:37:39