出于某种原因Â
,当我在表单上的文本字段中输入 £ 时,我得到了 £76756687 的奇怪字符?
问问题
6644 次
2 回答
8
正如您所怀疑的,这是一个字符编码问题 - 页面是否设置为使用 UTF-8 字符集?(这种编码真的不会出错。)此外,您可能希望在退出时对磅符号进行实体编码(£
)
作为示例字符集(对于表单页面和 HTML 电子邮件),您可以使用:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
也就是说,用户是否有充分的理由必须输入货币符号?将其作为静态文本项或文本字段左侧的下拉菜单会更好吗?(如果我说的是屁股,而您使用的是自由格式的 textarea 或 summat,请随意忽略。)
于 2010-01-14T18:58:53.450 回答
5
您可能使用 UTF-8 作为字符编码,但没有正确声明您的输出。因为£
字符 (U+00A3) 以 UTF-8 编码为 0xC2A3。并且该字节序列代表两个字符Â
,并且£
在使用 ISO 8859-1 进行解释时。
所以你只需要正确指定你的字符编码。在 PHP 中,您可以使用该header
函数为Content-Type标头字段设置正确的值,例如:
header('Content-Type: text/html;charset=utf-8');
但请确保在任何输出之前调用此函数。否则 HTTP 标头已发送,您无法修改它。
于 2010-01-14T19:17:23.570 回答