[解決済み] UTF-8でエンコードされたNSDataをNSStringに変換します。
2022-02-09 13:32:31
質問
UTF-8でエンコードした
NSData
に変換したい。
NSString
iPhone用です。データには、両プラットフォームで値が異なる文字(度記号など)が含まれているため。
データを文字列に変換するには?
どのように解決するのですか?
データがヌル文字で終端されていない場合は
-initWithData:encoding:
NSString* newStr = [[NSString alloc] initWithData:theData encoding:NSUTF8StringEncoding];
データがヌル文字で終端している場合は、代わりに
-stringWithUTF8String:
を使用することで、余分な
\0
を最後に追加します。
NSString* newStr = [NSString stringWithUTF8String:[theData bytes]];
(ただし、入力が適切にUTF-8エンコードされていない場合は
nil
.)
Swiftのバリアント。
let newStr = String(data: data, encoding: .utf8)
// note that `newStr` is a `String?`, not a `String`.
もしデータがヌル文字で終端しているなら、ヌル文字を削除する安全な方法と、上記の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:))
関連
-
[解決済み】Xcode 10.2.1 Command PhaseScriptExecutionが0以外の終了コードで失敗した。
-
[解決済み】印刷します。エントリ, ":CFBundleIdentifier", Does Not Exist
-
[解決済み] ペン先を読み込んだが、「表示」コンセントが設定されていない
-
[解決済み] 「シミュレータで実行すると、「インストールされているプロビジョニングプロファイルが、インストールされているiOS署名アイデンティティと一致しません。
-
[解決済み] UITabBar アイコンが正しく表示されない
-
[解決済み] SwiftUI vs Interface Builderとストーリーボード【非公開
-
[解決済み] ブリッジングヘッダ用のプリコンパイルヘッダの発行に失敗しました。
-
[解決済み] UILabelにスペース/パディングを追加する
-
[解決済み] あなたのリクエストはエラーを発生させました。[newNullResponse]?
-
[解決済み] NSStringをNSNumberに変換する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】arm64アーキテクチャの未定義シンボルについて
-
[解決済み】iOS用のプライベートメッセージUI(受信、送信、作成)フレームワークはありますか?
-
[解決済み] ウィンドウ階層にないビューを持つUIViewControllerでUIViewControllerを表示しようとする
-
[解決済み] swiftで「floor」が使用できない
-
[解決済み] SwiftUI vs Interface Builderとストーリーボード【非公開
-
[解決済み] このアクションは完了できませんでした。再試行 (-22421)
-
[解決済み] ブリッジングヘッダ用のプリコンパイルヘッダの発行に失敗しました。
-
[解決済み] swift3におけるセレクタ
-
[解決済み] WKWebviewにuseragentを設定する
-
[解決済み] UILabelにスペース/パディングを追加する