【问题标题】:Submit form with get method in non UTF-8 encoding使用非 UTF-8 编码的 get 方法提交表单
【发布时间】:2013-10-31 09:27:43
【问题描述】:
  1. 我有一个非 UTF-8 编码的page
  2. 有一个带有method="get" 的表单。如果我提交这些非 UTF-8 字符,它们会到达 URI。
  3. 当我尝试在 URI 上运行 decodeURIComponent() 时,我得到了 infamous errorURIError: malformed URI sequence

请关注the testcase

问题:

  1. 上述步骤(1、2、3)中的哪个步骤有问题? 1应该没问题。 2是提交<form>的标准方式。 3是标准功能。这些都是标准的!但一定是哪里出了问题。

  2. URI 中是否允许使用 UTF-8 以外的编码字符? (如果不是,问题显然出在第 2 步)。

  3. 正确诊断问题后,问题是 - 什么是干净的解决方案?页面必须保持非 UTF-8 编码。

【问题讨论】:

    标签: javascript html utf-8 uri


    【解决方案1】:

    火狐说:

    [11:38:39.275] 以 ISO-8859-2 编码提交的表单无法编码所有 Unicode 字符,因此用户输入可能会损坏。为避免此问题,应更改页面,以便通过将页面本身的编码更改为 UTF-8 或通过在表单元素。 @http://artax.karlin.mff.cuni.cz/~ttel5535/pub/bugs/form_get_submit_non_utf-8/non_utf8_uri_test.html?input=%B9

    【讨论】:

    • 在控制台中,发送表单后。
    • 不适合我!我只收到“URIError:格式错误的 URI 序列”。你是怎么做到的?
    • 我用打开的控制台发送表单。
    猜你喜欢
    • 1970-01-01
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-22
    • 2015-02-10
    相关资源
    最近更新 更多