2010-07-07 152 views
1

我從數據庫中提取一些文本,其中包含一些回車。當我把它們直接寫入html時,它們被解釋爲 。我嘗試了很多不同的方式來刪除它們,但似乎沒有任何運氣。需要刪除ASCII字符

有什麼想法?

+0

我懷疑這是真的回車字符。它最有可能*是*,但是你的一些代碼破壞了它。你必須先找到這些字符的實際代碼。 – 2010-07-07 16:24:48

+0

在進一步調查中,我甚至沒有看到這些字符在線返回。我不確定他們爲什麼會出現,說實話。似乎沒有任何種類的字符正在被替換......他們只是被扔進去。 *困惑* – MetalAdam 2010-07-07 16:59:53

回答

2

這聽起來像字符編碼衝突。以前的其他建議對於快速修復是很好的,但如果你控制了數據,我認爲你最好搞清楚並堅持一個字符集。如果您從UTF-8數據庫讀取並在網站上包含該文本,請勿告訴瀏覽器您正在提供ISO-8859-1或Windows-1252。

+0

我不控制數據庫,只能訪問這些信息。任何建議我將如何去確定數據庫的字符集? – MetalAdam 2010-07-07 16:40:36

+0

'SHOW VARIABLES LIKE 'character_set_database';' – thetaiko 2010-07-07 17:01:30

+0

值= LATIN1 我已經改變了我的網頁: 然而,仍然得到字符... – MetalAdam 2010-07-07 17:37:51

2
select Replace(myColumn,CHAR(13),'') 

你試過嗎?你還試過了什麼?

+0

如果它也是換行符,您可以用Replace(Replace(myColumn, CHAR(13),''),CHAR(10),'') – Fosco 2010-07-07 16:01:53

+0

試過這個..仍然得到 字符。 – MetalAdam 2010-07-07 16:17:52

+0

然後它不是回車或換行符。它必須是另一個字符或編碼。我會使用SQL工具來識別該字符並獲得序號值。 – Fosco 2010-07-07 16:29:52

1

好吧,如果你想保持回車,使用nl2br以其它方式使用$val = str_replace(array('\r\n', '\r', '\n'), ' ', $val);

+0

由於某些原因,nl2br無法識別 字符。 – MetalAdam 2010-07-07 16:17:25

+0

Mhhh我看到的只是?在黑盒子裏,這可能是我的字符集不能識別的任何字符。所以我不確定你正在顯示哪個角色...... – Trefex 2010-07-07 16:21:10

+0

這是我的網頁中顯示的角色。如果我通過My​​SQL瀏覽器查看它,則該字符類似於具有額外|的向後P附在底部... – MetalAdam 2010-07-07 16:25:33