ASIHTTPRequest:检测到不正确的 NSStringEncoding 值 0x0000

2024-05-11

检测到不正确的 NSStringEncoding 值 0x0000。假设 NSStringEncodingASCII。将停止此兼容性映射行为 不久的将来。

当我使用 ASIHTTPRequest 时,我不断收到此错误(50% 的时间),这是怎么回事?

我假设我传入的 URL 是正确的,因为它不包含任何空格或奇怪的字符,也许结果字符串包含一些无法识别的字符?


复制我的答案https://stackoverflow.com/q/8251175/918764 https://stackoverflow.com/q/8251175/918764

错误并不是您的数据编码不正确,几乎可以肯定您正在从一个请求某种字符串数据ASIHTTPRequest尚未设置编码的对象 - 如果请求无法连接到服务器,或者服务器未发送可理解的编码标头,则会发生这种情况。


如果您致电,这种情况尤其会发生[asiHttpRequest getResponseString]在返回有效响应并设置请求编码之前(即无法连接到服务器)。

解决此警告的最简单方法是编辑ASIHTTPRequest类,删除@synthesize responseEncoding并添加一个简单的自定义 getter/setter,以便在未设置响应编码时可以返回默认编码:

- (NSStringEncoding) responseEncoding
{
    return responseEncoding || self.defaultResponseEncoding;
}

- (void) setResponseEncoding:(NSStringEncoding)_responseEncoding
{
    responseEncoding = _responseEncoding;
}

还有一个更具体的解决方法getResponseString方法,我认为这是唯一使用编码而不检查值的地方 - 因为应该为任何非零长度响应设置编码:

- (NSString *)responseString
{
    NSData *data = [self responseData];
    if (!data) {
        return nil;
    }
    // --- INSERT THIS BLOCK ---
    // If the 'data' is present but empty, return a simple empty string
    if (data.length == 0) {
        return @"";
    }
    //assert(self.responseEncoding); // if you're into runtime asserts, uncomment this
    // --- END OF BLOCK TO INSERT ---
    return [[[NSString alloc] initWithBytes:[data bytes] length:[data length] encoding:[self responseEncoding]] autorelease];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASIHTTPRequest:检测到不正确的 NSStringEncoding 值 0x0000 的相关文章

  • JavaScript 中的奇怪字符导致其无法加载

    我的网站在本地主机上运行良好 我的 JavaScript 正在加载并运行良好 但是当我部署站点时 脚本不起作用 当我右键单击页面并说查看源代码 然后查看链接的脚本文件时 文件开头有一些奇怪的字符 函数 在本地主机上 我的脚本文件像这样开始
  • 如何对加密算法进行逆向工程?

    我编写了一个以这种方式加密文本的应用程序 获取输入文本 反转文本 转换为十六进制 用密钥进行异或 Base64编码 现在 我自己没有做很多加密 编码 所以我的问题可能听起来很愚蠢 但是 假设我得到一个包含上述算法内容的文件 而我不知道这个算
  • 来自 StreamReader 的原始文件字节,幻数检测

    我试图区分 文本文件 和 二进制 文件 因为我实际上想忽略具有 不可读 内容的文件 我有一个文件 我认为它是 GZIP 存档 我试图通过检测幻数 文件签名来忽略此类文件 如果我在 Notepad 中使用十六进制编辑器插件打开文件 我可以看到
  • CDO.消息编码问题

    我们目前正在将邮件递送系统更改为仅使用UTF 8 发件人姓名似乎有问题 当电子邮件包含非 ASCII 字符 希伯来语 时 主题和正文呈现正常 但发件人姓名 如出现在我的 gmail 帐户中 变为 有一行代码 myMail BodyPart
  • Windows命令行参数编码是什么?

    Windows 使用什么编码来传递给在 cmd exe 窗口中启动的程序的命令行参数 命令行参数的编码似乎不受使用控制台代码页设置的影响chcp 我将其设置为 UTF 8 代码页 65001 并使用 Lucida Console 字体 如果
  • fortran中双引号和单引号的区别?

    我刚刚开始使用 Fortran 对双引号和单引号的使用感到困惑 它们是等价的 它们的用法没有区别 您可以使用它来打印引号字符之一 print print 首先打印 进而 注意 您还可以在一行中使用两个引号字符来打印一个 print prin
  • IOS内存中存储userid

    我做了一个带有登录功能的IOS应用程序 我使用 ASIHTTPRequest 来检查用户是否存在于 MySQL 数据库中 一切正常 但我想通过其他视图控制器传递用户 ID 或在应用程序的其他部分检索它 有人可以推动我朝着正确的方向前进 如何
  • 为什么 RISC-V S-B 和 U-J 指令类型以这种方式编码?

    我正在读一本书 计算机组织与设计RISC V版 我遇到了 S B 和 U J 指令类型的编码 我上面提到的那些类型有奇怪的编码立即字段 S B 类型将直接字段分为两部分 这是有道理的 因为所有指令编码都必须相似 但我无法理解为什么立即字段以
  • 黑色左/右三角形大小不同

    我使用黑色左指三角形 右左指三角形几何形状作为网站上的链接 并使用它们的 HTML 代码 和 9664 9654 由于某种原因 即使我在没有其他元素的空白页面上使用三角形 它们也不会以相同的大小显示 在 Chrome 上 向左指向的位置比向
  • Python。短语表示,如何改变?

    我不知道这个短语中存在的编码是什么 我也想知道这个问题的答案 主要是 我想改变我的措辞 例如 你好世界 变成你好 20世界 0A 老天啊 变成ol C3 A1 20mundo 0A 0A 我想要一个 python 解决方案 如果我有 gt
  • YouTube API v3 的描述编码错误

    我已经成功创建了一个项目 通过 VB NET 以编程方式上传 YouTube 视频 并且它已经工作了几周直到今天 我在上传描述字段中包含德语变音符号的视频时遇到问题 当我尝试上传此类视频时 我收到以下信息WebException Syste
  • 在我的 ramaz 应用程序上显示 £ 符号时,我收到“不兼容的字符编码:CP850 和 UTF-8”

    显示时收到 不兼容的字符编码 CP850 和 UTF 8 我的 ramaz 应用程序上的符号 我怎样才能摆脱这个错误 我的 head 标签中有 UTF 8 元标签 当我输入 用键盘输入符号 看 我已将以下代码放入我的 ruby 文件中 但它
  • 经典的asp字符编码

    我在经典 asp 网站中遇到西班牙字符问题 用户可以在 aspx 页面上的表单中提交他们的姓名 地址 然后 aspx 页面将 ajax post 发送到经典的 asp 页面 它所做的所有操作都存储在我们的 Sql 2008 DB 中 我可以
  • 为什么在 Python 2.4 中使用 Unicode 数据会出现 ASCII 编码错误,而在 2.7 中却不会?

    我有一个程序 当在 Python 2 7 中运行时 会生成正确的 Unicode 输出到标准输出 当在 Python 2 4 中运行时 我得到UnicodeEncodeError ascii codec can t encode chara
  • 在python中设置区域设置编码

    我通过以下方式从 python 代码调用 java 程序 subprocess check output java classpath Users feralvam Programas semanticvectors 3 4 semanti
  • 土耳其语字符显示不正确[重复]

    这个问题在这里已经有答案了 MySql 数据库使用 utf 8 编码 数据存储正确 我使用 set name utf8 查询来确保调用的数据是 utf 8 编码 只要标头字符集是 utf 8 数据库中的所有变量都可以正常工作 但静态html
  • .properties 或 JSP 编码有问题

    我有jsp文件
  • Perl:管理 Windows 上的路径编码

    我正在努力处理包含非英文字符的路径 Activestate Perl Windows XP 如何打开 写入 复制等位于包含希腊语 俄语 法语重音字符的路径中的文件 假设我要将 text txt 文件复制到的目录是 C Documents a
  • 源代码是否应该以 UTF-8 格式保存

    以 UTF 8 格式保存源代码有多重要 Windows 上的 Eclipse 默认使用 CP1252 字符编码 CP1251 格式意味着可以保存非 UTF 8 字符 如果您从 Word 文档复制并粘贴注释以进行注释 我就看到过这种情况 我之
  • 如何让 IE 以 UTF-8 格式发布 FORM 数据?

    这是这个问题的延续 Java Jersey 以字节数组形式接收表单参数 https stackoverflow com questions 6282626 java jersey receive form parameter as byte

随机推荐