提交表单中允许的字符(包括UTF-8)

提交表单中允许的字符(包括UTF-8),第1张

概述假设我允许我的用户提交包含一些文本字段的表单(我不是在谈论密码).我的用户偶尔会使用非ASCII字符,如俄语,中文等,所以我在我的数据库中使用UTF-8字符集.问题是,我是否应该真正允许所有可能的UTF-8字符?我查看了ASCII表,看到字符0到31与文本无关,除了换行符和空格.字符176到223似乎是出于装饰目的:p.我应该限制它们吗? 确保它是有效的UTF-8和Unicode?是 确保它不包含 假设我允许我的用户提交包含一些文本字段的表单(我不是在谈论密码).我的用户偶尔会使用非ASCII字符,如俄语,中文等,所以我在我的数据库中使用UTF-8字符集.问题是,我是否应该真正允许所有可能的UTF-8字符?我查看了ASCII表,看到字符0到31与文本无关,除了换行符和空格.字符176到223似乎是出于装饰目的:p.我应该限制它们吗?解决方法 确保它是有效的UTF-8和Unicode?是

确保它不包含某些字符,例如控制代码?可能没必要

您应该知道,即使您在表单中使用UTF-8,在向您发送表单数据时,您可能无法从所有用户代理获得有效的UTF-8,并且您必须根据需要对其进行过滤.无效的UTF-8可以采用多种形式,其中一些形式

>超长编码(可能导致安全问题)
>其他无效的UTF-8字节序列,可能表示用户代理忽略了字符编码,并提交了类似Windows-1252或ISO-8859-1编码的内容.
>代码点位于Unicode中的保留代理空间中

以上所有内容都需要在输入过程中过滤掉,否则您不会存储有效的Unicode.

如果要提供使用Unicode子集的有效HTML或xhtml,则还需要过滤掉(在输入或输出处):

> C0控制代码0x00至0x19(除标签,空格,新行,carraige返回)> 0x7F> C1控制码0x80至0xBF>(可能)任何代码点高于0x10FFFF

总结

以上是内存溢出为你收集整理的提交表单中允许的字符(包括UTF-8)全部内容,希望文章能够帮你解决提交表单中允许的字符(包括UTF-8)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1047619.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存