gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 07:32:24 24 4
gpt4 key购买 nike

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

最佳答案

W3C 在 Multilingual form encoding 中的示例正则表达式中跳过这些字符:

$field =~
m/\A(
[\x09\x0A\x0D\x20-\x7E] # ASCII
| [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
| \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
| \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
| \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
| [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
| \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
)*\z/x;

关于utf-8 - 提交表单中允许的字符(包括 UTF-8),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1263353/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com