微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何获取有关用于发送表单数据的编码的提示(在PHP中)

我正在处理一个脚本,该脚本通过POST方法从网站上的表单接收数据.编码是未知的,但是我想使用mb_detect_encoding()来检测接收到的字符串的编码.

现在,有什么方法可以获取有关发送数据可能使用的编码方式的其他提示?浏览器可能会看到该页面在ISO-8859-1中,因此也以该编码发送数据,并可能添加一些HTTP标头以指示格式.

获得字符集提示的典型来源是什么?

解决方法:

如果您不知道编码,那么您已经迷路了.您需要确保编码尽可能定义.如果数据来自表单,请使用accept-charset属性指定已定义的编码;最好是UTF-8:

<form accept-charset='utf-8'>

在您的服务器上,使用mb_check_encoding确认接收到的数据确实按照您的请求进行了UTF-8编码.如果不是,则取决于您要执行的操作.出于所有目的和目的,您手上都会有随机垃圾数据;是否可以以任何方式进行补救取决于您的情况以及您要对数据进行的处理.

FWIW,浏览器不发送任何指示符来说明它们发送给您的编码.某些浏览器(* cough *旧的IE * cough *)也不总是接受accept-charset属性,除非您强迫它对非ASCII字符进行编码.网站通常会在其中嵌入带有雪人字符☃或类似Unicode-y的隐藏输入.

此外,如果出于某种原因,浏览器没有以UTF-8编码内容,而是尝试发送非ASCII内容,则通常会发送HTML实体.您可以尝试检测到这一点.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐