2014-06-12 11 views
0

我有包含来自所有语言的客户的数据的文本输入(大部分属于ISO-8859-1字符集,但有些像俄文不)。为避免在包含双引号的情况下破坏文本输入,我使用以下内容:htmlspecialchars:所有语言的退出双引号

echo '<input type="text" value="'. htmlspecialchars($client_name, ENT_QUOTES, 'ISO-8859-1') .'" />'; 

它适用于常规字符。不同的字符集会出现问题。举例来说,与俄罗斯,上述输出HTML实体,如:

&#1058 

由于我们的客户服务将使用这种形式,他们必须看到的文字,因为它是,以确保领域已经正确填写。上面的代码是否可以替代所有语言的双引号并保留?

诸如str_replace之类的函数并不是我正在寻找的,因为我不想替换双引号,只是为了在不破坏代码的情况下显示它们。

谢谢

+0

你为什么让你的客户服务人员看看HTML *源代码*?呈现HTML,他们会看到正常的字符。 – Quentin

+0

对不起,没有说清楚:客服看不到源码,他们看到的是文字栏位。我希望文本在文本字段中正确显示。 – bidouillages

+0

您拥有的代码应该在字段中正确显示文本。如果他们看到'&#1058',那么这可能是因为有人正在输入那个(或者你有的其他代码正在将它转换成实体,所以你最终会双重转义它)。 – Quentin

回答

0

经过一番研究,我选定了以下功能:

echo '<input type="text" value="'. str_replace('"','&quot;',$client_name) .'" />'; 

这样,我没有与各种语言的任何问题。