2012-12-27 48 views
0

嗨我有一些困难从字符串转义双quoutes。php转义双引号

这里是我的情况:
我得到的结果从数据库设置,那么我申请utf8_encode它,因为那里的拉丁/重音符号,它会返回一个字符串,它应该是exept在开始和结束时的双引号字符串。

如果在DB中有:"Olá João"则返回:Olá João。双引号被忽略

$rs = mysql_fetch_array($query) 
$text = utf8_encode($rs['l_reference']); 
echo $text; 

我试过使用addslashes但没有成功。

+0

请提供数组条目以及'$ text'的'var_dump'。并且[这两个字符串都是hexdump](http://stackoverflow.com/q/1057572/367456)。我不确定这些引用是否真的存在于数据库中,我必须说。 – hakre

+0

谢谢@hakre。下面是var_dump文本的一个小部分:string(705)“O primeiro ....开头有双引号,但它没有出现在echo – peterK

回答

0

我认为它是因为“OláJoão”是一个多字节字符串,您必须为此使用不同的解决方法。试试这个mb_addslashes

+1

这是一个多字节字符串,因为它有多个字节我不需要为多字节的字符串使用任何解决方法,所以对我来说并不真实。 – hakre

+0

@hakre谢谢,我只知道多字节是日文编码hehe –

+0

这只是一个小小的差异:你的意思是多字节(八位字节)编码 - 但不是字符串。多字节字符串不能以多字节编码传送数据。 – hakre