将 UTF-8 编码的 NSData 转换为 NSString

2024-02-14

我有UTF-8编码NSData来自 Windows 服务器,我想将其转换为NSString对于iPhone。由于数据包含在两个平台上具有不同值的字符(如度数符号),如何将数据转换为字符串?


如果数据不是空终止的,您应该使用-initWithData:encoding:

NSString* newStr = [[NSString alloc] initWithData:theData encoding:NSUTF8StringEncoding];

如果数据以空终止,您应该使用-stringWithUTF8String:以避免额外的\0在最后。

NSString* newStr = [NSString stringWithUTF8String:[theData bytes]];

(请注意,如果输入未正确进行 UTF-8 编码,您将得到nil.)


斯威夫特变体:

let newStr = String(data: data, encoding: .utf8)
// note that `newStr` is a `String?`, not a `String`.

如果数据以 null 结尾,您可以采用安全的方法,即删除该空字符,或者采用类似于上面 Objective-C 版本的不安全方法。

// safe way, provided data is \0-terminated
let newStr1 = String(data: data.subdata(in: 0 ..< data.count - 1), encoding: .utf8)
// unsafe way, provided data is \0-terminated
let newStr2 = data.withUnsafeBytes(String.init(utf8String:))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 UTF-8 编码的 NSData 转换为 NSString 的相关文章

  • iOS 应用程序崩溃 com.apple.root.background-qos

    在应用程序中发现应用程序崩溃 我怀疑这可能是由于 firebase 观察者的代码而发生的 由于在用户案例中 用户可以从一个事件转到用户配置文件 参与此事件 然后从用户配置文件可以返回到此事件 我需要一个 ref 句柄来删除特定的观察者 因此
  • 如何在 Swift 中更改 UIButton 图像

    我正在尝试使用 Swift 更改 UIButton 的图像 我应该怎么办 这是 OBJ C 代码 但我不知道 Swift 的情况 playButton setImage UIImage imageNamed play png forStat
  • 从 Xcode 6 安装失败:“存在内部 API 错误”

    我尝试在 ipad ios 7 1 2 上运行一个在我的手机 ios 8 4 1 上运行良好的应用程序 Xcode 提示 存在内部 API 错误 仅此而已 我不确定如何解释日志 怎么了 我该如何解决 ipad日志 Aug 29 17 39
  • iOS-Swift UIApplication.shared.isIdleTimerDisabled = true 在 AppStore 审核后不起作用

    努力实现停止屏幕在某些情况下进入睡眠状态View Controller 我做了什么我已在运行 iOS 12 1 12 的物理 iPhone 6 上使用以下代码测试了我的应用程序 我设置了手机Dislpay Brigthness gt Aut
  • 签名根框架中嵌入的子框架不起作用(Xcode 11.2.1)

    我有一个小型的概念验证应用程序 我试图在我的框架 AequumPOCFramework framework 中嵌入 并签名 一个框架 Alamofire 但是 当我尝试部署到我的设备时 它不断给出我的错误 在使用库验证的进程中使用无效 映射
  • 使用本地化故事板进行即时本地化

    我正在开发一个应用程序 它有一个切换按钮可以在英语和阿拉伯语之间切换 并且应该是动态的 我正在使用该方法https github com maximbilan ios language manager https github com ma
  • UITextField 中光标闪烁,但键盘不出现

    我得到了一个带有文本字段的简单详细视图 在详细的viewController中我写了这段代码 void viewDidAppear BOOL animated self textField becomeFirstResponder NSLo
  • 我可以更改导航栏项目的位置吗?

    Here is the snapshot 代码在这里 UIButton leftButton UIButton buttonWithType UIButtonTypeCustom leftButton frame CGRectMake 0
  • dequeueReusableCellWithIdentifier: 如何工作?

    我想要一些精确的信息dequeueReusableCellWithIdentifier kCellIdentifier 如果我理解得很好 下面的 NSLOG 应该只打印一次 但事实并非如此 那么 dequeueReusableCell 的意
  • 应用程序终止时处理通知(iOS)

    我正在开发接收通知的应用程序 使用苹果推送通知 我正在存储这些通知并在一个控制器中显示为列表 据我了解 每当收到通知时都会调用 didReceiveRemoteNotification 当应用程序位于前台和后台时 我可以通过 didRece
  • 尝试了解CMTime

    我见过一些examples https stackoverflow com questions 5808557 avassetwriterinputpixelbufferadaptor and cmtime of https stackov
  • 更改“返回”键盘按钮的文本

    如何将 返回 按钮的标准文本更改为其他内容 我希望它是 添加 不幸的是 您可以使用以下命令将 Return 更改为这些预定义标签之一 returnKeyType财产 返回 默认 Go Google Join Next Route Searc
  • 为什么使用自动布局时视图的框架宽度始终为 600 x 600

    我正在制作一个基本的扫雷应用程序 用于快速练习 娱乐 我想让板的尺寸 10 个图块宽 适应任何 iOS 屏幕 为此 我通过获取tileContainer view frame width和 10来设置每个图块的大小 我的问题是 tileCo
  • 在 SwiftUI App 中实现深色模式切换

    我目前正在我的应用程序中研究深色模式 虽然由于我的 SwiftUI 基础 深色模式本身并不困难 但我正在努力选择将 ColorScheme 设置为独立于系统 ColorScheme 的选项 我在苹果人机界面指南中找到了这一点 https i
  • IOS Swift 从数组中搜索表

    我刚刚开始学习 swift 我正在研究 tableview 和 searchbar 功能 下面我有我的数组 它是水果列表 var fruits String Apple Green Pear Green Banana Yellow Oran
  • PreferredInterfaceOrientationForPresentation 必须返回受支持的界面方向 (iOS 6)

    我的应用程序窗口的根视图控制器是 UINavigationController 的子类 我已将此代码添加到类中 BOOL shouldAutorotate return self topViewController shouldAutoro
  • Swift 中的自定义输入视图

    我花了几个小时试图弄清楚如何创建 然后定制inputView上班 我有一个网格TextInputs 想想拼字板 按下时应该加载自定义inputView插入文本 我创建了一个 xib文件包含UI elements为定制inputView 我能
  • 如何安全地将 CGFloat 降低或提高到 int?

    我经常需要在地板或天花板上安装CGFloat to an int 用于计算数组索引 我永远看到的问题floorf theCGFloat or ceilf theCGFloat 是浮点不准确可能会带来麻烦 那如果我的CGFloat is 2
  • AVPlayerLooper 每次迭代后黑闪

    我正在使用 Apple 的示例代码在UICollectionViewCell背景 我在用着AVPlayerLooper 因为它是同一视频的迭代 我的问题是 当视频结束时 它会显示轻微的黑屏闪烁 也许它正在将视频搜索到0时间 我不确定 这是代
  • 我可以对图像进行动画处理吗 iOS8 LaunchScreen.xib

    问题 有没有方法可以为针对 iOS 8 1 部署的 Xcode 6 项目的 LaunchScreen xib 文件中的任何内容设置动画 Context 我正在寻找制作简单的动画来传达活动或在用户等待时分散他们的注意力 例子 加载栏 活动指示

随机推荐

  • 为 NAT 后面的主机检索外部 IP 的稳定方法

    基本上我想显示主机外部面向公众的 IP 地址 无论它是否是 natted lan 的一部分 我现在所做的只是连接到 myipaddress com 并从那里检索它 我只是不知道我是否信任该网站作为稳定的来源 是否有一些权威机构可以促进这一点
  • AngularJS:如何使用 ng-animate 在加载时对 ng-repeat 进行动画处理

    Folks 我如何获得使用创建的divng repeat向下滑动 我的意思是在负载时尺寸增大 我想使用来实现这个ng animate并且动画应该在页面加载时触发 我正在看this http docs angularjs org api ng
  • 如何使.rdlc报告中的tablix从右侧开始并向左扩展?

    我正在开发一个项目 Windows 窗体 并且有一个包含多个列的 rdlc 报告 当所有列都可见时 列从右到左完美显示 但当隐藏某些列时 每个隐藏列的右侧都会留下一个空白 换句话说 每个隐藏列都有不可见的内容 但其位置仍然存在 我尝试了几乎
  • Python copy.deepcopy() 失败,但没有引发警告、异常或错误

    这个问题与另一个问题 https stackoverflow com questions 22683755 issue while trying to copy pyside object我昨天发布了 尽管它本质上更普遍 由于我提到的线程
  • 如何判断IPv6地址是否私有?

    我试图确定给定的 IPv6 地址在 C 中是否是私有的 并且我很想简单地使用 IPAddress 类上的 IsIPv6SiteLocal 属性 然而 正如本节中所解释的comment https stackoverflow com ques
  • 使用 PDFBox 填充横向 PDF

    我尝试使用 PDFBox 填写 PDF 表单 并成功地使用纵向文档完成了这一工作 但我在横向模式下填写文档时遇到问题 字段已填满 但文本方向不好 它看起来是垂直的 就像它仍然是纵向的 但旋转了 90 度 这是我的简化代码 PDDocumen
  • 如何在没有 xml 配置的情况下使用 JasperReportsPdfView

    我想要一个控制器方法从 JasperReports jrxml 文件返回 PDF 而不使用任何 xml 配置 我想用一个JasperReportsPdfView 这有可能吗 我知道这可以只用 Java 代码来完成 就像这个博客中一样 htt
  • 为什么fragment中的生命周期方法是公开的,而activity的生命周期方法是受保护的?

    该活动被保护封装在框架包 android app 和子类中这个链接 https stackoverflow com questions 20161662 why are lifecycle methods in activity class
  • 当父元素有最小高度/最大高度值但没有高度值时,为什么子元素上的 height: 100% 不适用?

    假设我们有以下设置 container background color red width 500px min height 300px child background color blue width 500px height 100
  • 日期范围内的 SQL 分割数

    我有一个表 例如这个数据 ID start date end date amount a1 2013 12 01 2014 03 31 100 我想要一个分割日期的查询 这样我就可以将全年的金额分割出来 如下所示 ID org start
  • c# - 数组从哪里继承(即 .int[] )

    创建数组时 例如int 它是否继承自任何东西 我认为它可能继承自 System Array 但查看编译后的 CIL 后发现并非如此 我认为它可能继承自 System Array 或类似的东西 考虑到您可以调用方法并访问数组上的属性 I e
  • 使用 C 编程频谱图 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在尝试用 C 语言制作音频频谱图
  • 向量数学,求角度

    我试图通过编写一个小型 2D 游戏来学习 XNA 它是一个自上而下的视角 我尝试进行双重移动 使用左右和上下键沿轴移动 以及向右看鼠标光标 以便玩家可以同时奔跑和瞄准 我有一个用于玩家位置的向量 m PlayerPos 一个用于鼠标位置的向
  • 如何在 NestJS 中为每个新的 HTTP 请求使用新实例?

    我有一个 API 并且正在尝试发送请求 这是有效的 但我注意到在收到回复后 这些类并没有被销毁 我目前正在使用 NestJS 但是当我尝试测试时 nodeJS ExpressJS 也遇到了这个问题 我正在使用以下代码 Injectable
  • 如何计算两个地点之间的时差

    我在计算两个时区之间的时差时遇到问题 如果我在位置 A 我知道纬度和经度以及当前时间 我去位置B我知道纬度和经度以及当前时间 如何计算当前两个点之间的时间差 以UTC为单位 首先获取一个可以转换纬度 经度以获取国家 地区和州 省的数据库或库
  • 为什么我的 SQL“NOT IN”子句产生与“NOT EXISTS”不同的结果

    当我期望两个 SQL 查询产生相同的结果时 它们会产生不同的结果 我正在尝试查找没有相应位置的事件的数量 所有位置都有事件 但事件也可以链接到非位置记录 以下查询生成计数 16244 这是正确的值 SELECT COUNT DISTINCT
  • 定义双感叹号?

    我理解双感叹号的作用 或者我认为我理解 但我不确定它是如何在随机对象上定义的 例如下面的代码片段 Assignment a if getAssignment query a return false hasSolution a if a r
  • uint 和 unsigned int 之间的区别?

    有什么区别吗uint and unsigned int 我正在查看此网站 但所有问题都涉及 C 或 C 我想要一个关于C语言的答案 如果相关的话 请注意我在 Linux 下使用 GCC uint不是标准类型 unsigned int is
  • 关闭 GPS 时广播接收器调用了 2 次?

    显现
  • 将 UTF-8 编码的 NSData 转换为 NSString

    我有UTF 8编码NSData来自 Windows 服务器 我想将其转换为NSString对于iPhone 由于数据包含在两个平台上具有不同值的字符 如度数符号 如何将数据转换为字符串 如果数据不是空终止的 您应该使用 initWithDa