Encoding Dart语言和http_服务器包:处理字符“&”时出现异常
我在使用http_服务器Dart包发送和处理某些文件时遇到问题。processRequest方法在处理主体时引发异常。这是异常:未捕获错误:HttpException:未处理的HTTP实体令牌 我按如下方式调用processRequest:Encoding Dart语言和http_服务器包:处理字符“&”时出现异常,encoding,utf-8,dart,iso-8859-1,httpserver,Encoding,Utf 8,Dart,Iso 8859 1,Httpserver,我在使用http_服务器Dart包发送和处理某些文件时遇到问题。processRequest方法在处理主体时引发异常。这是异常:未捕获错误:HttpException:未处理的HTTP实体令牌 我按如下方式调用processRequest: HttpBodyHandler.processRequest(request, defaultEncoding: Encoding.getByName("ISO-8859-1")).then((body) { (...) },
HttpBodyHandler.processRequest(request, defaultEncoding: Encoding.getByName("ISO-8859-1")).then((body) {
(...)
}, onError: _printError);
仅当正文包含字符&时,ISO-8859-1和UTF-8才会发生此异常。有没有办法解决这个问题?这是http\U服务器Dart包中的一个错误。我们正在尝试解码来自multipart/formpost的值中的HTML实体值。对HTML实体的解析是错误的,并导致其中包含&个字符的值不起作用 我做了这个修复,它从multipart/formpost中删除了值的HTML实体解析 浏览器Chrome、Firefox和Safari可能会使用格式为&xxxxx;对于某些情况下的表单值。一种情况是在HTML表单元素上设置了属性accept charset=latin1。但是,在这种情况下,for中输入的字符没有编码,因此无法进行一般解码。上述修复程序删除了自动HTML实体解码
如果承载表单的HTML页面的内容类型为text/HTML,则不在表单元素上设置accept字符集将导致使用UTF-8;字符集=utf-8。使用所有UTF-8通常会导致较少的问题。sgjesse,你的补丁修复了这个问题,现在我能够处理一个包含字符的主体。谢谢http_服务器包的0.9.5版修复了该漏洞。