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