2010-07-07 101 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