我試圖將字符串轉換爲32位無符號的網絡(big-endian)字節順序。我似乎無法弄清楚如何做到這一點。在Ruby中,我通過string.unpack('N')
完成了這個任務 - 但似乎無法在Objective-C中管理這個。有什麼建議麼?謝謝!Objective-C等價於Ruby中的string.unpack('N')
2
A
回答
5
在Objective-C中,您需要將NSString
轉換爲NSData
。然後您可以訪問NSData
對象的字節。
NSString *str = @" H€llö Wòrld";
NSData *data = [str dataUsingEncoding:NSUTF32BigEndianStringEncoding];
NSLog(@"%@", data);
// Output:
// <0001f604 00000020 00000048 000020ac 0000006c 0000006c 000000f6 00000020 00000057 000000f2 00000072 0000006c 00000064>
const uint8_t *bytes = [data bytes]; // pointer to converted bytes
NSUInteger length = [data length]; // number of converted bytes
+0
它是否也關心endianess? – 2013-03-08 16:22:57
+1
@RamyAlZuhouri:是的,'NSUTF32BigEndianStringEncoding'指定了很大的字節順序。 – 2013-03-08 16:23:43
相關問題
- 1. 相當於Java Ruby的String.unpack爲「Q *」
- 2. fromCharCode等價於Ruby
- 3. charCodeAt()等價於Ruby
- 4. python等價於ruby的__method__?
- 5. python等價於ruby的StringScanner?
- 6. Ruby等價於Python的DictWriter?
- 7. python等價於ruby的`map.with_index`?
- 8. Ruby ::等價於Tie :: FIle?
- 9. PL/Ruby等價於MySQL
- 10. python等價於ruby bundler包
- 11. 等價於晶體中的ruby`block_given?`
- 12. 等價於Ruby中的findall()方法?
- 13. Ruby中的Java CLASSPATH等價於什麼?
- 14. Python中的「require」(Ruby)等價於什麼?
- 15. Ruby的等價於PHP的「get_defined_vars」函數?
- 16. Ruby的等價於C#的??運營商
- 17. Ruby的等價於PHP的ucfirst()函數
- 18. Ruby中subprocess.Popen()的等價物?
- 19. 比較對象等價於Ruby的
- 20. java等價於ruby的|| ||語法
- 21. Vimscript是否等價於Ruby的`any?'
- 22. Python等價於Ruby的包函數
- 23. 有沒有C#等價於Ruby的`respond_to?`?
- 24. Ruby等價於Groovy的Elvis(?:)運算符?
- 25. Maple等價於Matlab矩陣(1:N)?
- 26. Java .properties文件等價於Ruby?
- 27. Ruby的等價ASP.NET的Application_Start?
- 28. Python的等價Ruby的'method_missing'
- 29. Ruby的cURL的等價物?
- 30. Ruby的等價的Python setattr()
請注意,Objective-C字符串對象嚴格用於封裝正確編碼的字符串,通常是UTF-8或UTF-16字符串。它們不應該用於原始數據(NSData就是這樣)。 (我看到很多來自腳本語言的人都對這一點感到困惑) – bbum 2013-03-08 17:35:27