【问题标题】:Simple web server: form post data is encoded in quoted-printable简单的网络服务器:表单发布数据以quoted-printable编码
【发布时间】:2016-04-17 04:14:48
【问题描述】:

我正在尝试实现一个基本的 http 服务器代码来呈现 Web 表单并在用户点击提交时处理发布的数据。代码托管在这里:http://www.codeproject.com/Articles/137979/Simple-HTTP-Server-in-C

但是,我收到了我不想弄乱的引用可打印格式的帖子数据。如何使所有内容都以 UTF-8 编码包装?

也许您可以阐明我的特定问题,或者您可以建议一种不同的方法来呈现 Web 表单并处理提交的数据。还是谢谢你... Sample webform and post data

【问题讨论】:

    标签: c# webforms character-encoding mime postdata


    【解决方案1】:

    您正在混合苹果和橙子。内容传输编码将字符数据封装在一个健壮的包装器中,该包装器可以转义任何在协议级别上有意义的字符。这是不管数据中的字符集。在quoted-printable 数据中,您可以找到任何字符集中的字符数据(或二进制数据,尽管base64 通常是选择的内容传输编码)。

    因此,重申一下,您没有非此即彼的选择——您收到的字符数据将具有内容传输编码(可能是透明的;尽管 MIME 称其为“二进制” “8bit”和“7bit”内容传输编码也是透明的,虽然只适用于某些受限类型的数据)字符编码(可能是“US-ASCII”又名普通的旧 7-位字符数据,具有非常有限的字符库,或“ISO-8859-1”,它是 8 位,因此具有稍大的库,但仍受限制;或 Unicode 编码之一,例如“UTF-8”) .

    如果不处理 MIME 的这一方面,您确实无法处理 HTTP。

    【讨论】:

    • 我知道在某些时候我误解了某事。关于封装。谢谢你说清楚!然而,似乎没有合适的工具来解开该字符数据。您能否建议转换引用可打印的帖子内容的提示?
    • quoted-printable 编码非常简单,在RFC2045 的第 6.7 节中有完整记录;但简而言之,任何字节都可以编码为一个 ASCII 序列,该序列由一个等号和两个 ASCII 十六进制数字组成。此外,等号和换行符的序列将被简单地删除,以允许透明换行到有限的宽度。我敢肯定,找到实现这一点的 C# 库并不难,但它不是我熟悉的语言。
    猜你喜欢
    • 2018-02-01
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    • 2014-03-01
    • 2011-09-24
    相关资源
    最近更新 更多