出于某种原因,当我在表单上的文本字段中输入£时,我得到一个Â
£76756687这个奇怪的字符?
答案 0 :(得分:7)
正如您所怀疑的,这是一个字符编码问题 - 是否设置了使用UTF-8字符集的页面? (你真的不能错过这种编码。)另外,你可能想要在出路时对英镑符号进行实体编码(£
)
作为示例字符集(对于表单页面和HTML电子邮件),您可以使用:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
那就是说,用户是否有充分的理由要输入货币符号?将它作为静态文本项或文本字段左侧的下拉列表是否更好? (如果我正在谈论屁股而你正在使用自由形式的textarea或summat,请随意忽略。)
答案 1 :(得分:4)
您可能使用UTF-8作为字符编码,但未正确声明输出。因为£
字符(U + 00A3)以UTF-8编码,带有0xC2A3。当使用ISO 8859-1进行解释时,该字节序列表示两个字符Â
和£
。
所以你只需要正确指定你的字符编码。在PHP中,您可以使用header
function为Content-Type header field设置正确的值,如:
header('Content-Type: text/html;charset=utf-8');
但请确保在输出之前调用此函数。否则,HTTP标头已经发送,您无法修改它。