1

出于某种原因Â,当我在表单上的文本字段中输入 £ 时,我得到了 £76756687 的奇怪字符?

4

2 回答 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 回答