热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于字符串和byte数组在java和ios之间兼容的解决办法

from:http:blog.csdn.netmiemie1320articledetails7761848之前在java上写过String转为byte数组的代码&#

from:http://blog.csdn.net/miemie1320/article/details/7761848


之前在java上写过String转为byte数组的代码,后来在开发iPhone程序的时候,发现也需要把NSString转为byte数组,并且需要达到跟java程序兼容。但是发现java自身的默认编码机制为iso-8859-1,而ios的默认编码机制为utf-8,所以直接编码并不能达到两者兼容的问题。后来查阅相关资料,最后解决了编码兼容的问题,而且中英文都通用。

如下为java代码:

[html] view plaincopy
  1. String str = "你好啊,aBc!";  
  2. ByteArrayOutputStream baos = new ByteArrayOutputStream();  
  3. DataOutputStream outputstream = new DataOutputStream(baos);  
  4. outputstream.writeChars(str);  
  5.   
  6. byte[] contents = baos.toByteArray();  
  7. for (int i &#61; 0; i < contents.length; i&#43;&#43;) {  
  8.     System.out.println("contents:"&#43;contents[i]);  
  9. }  


最后打印为&#xff1a;
[java] view plaincopy
  1. contents:79  
  2. contents:96  
  3. contents:89  
  4. contents:125  
  5. contents:85  
  6. contents:74  
  7. contents:0  
  8. contents:44  
  9. contents:0  
  10. contents:97  
  11. contents:0  
  12. contents:66  
  13. contents:0  
  14. contents:99  
  15. contents:0  
  16. contents:33  




ios代码&#xff1a;

[java] view plaincopy
  1. NSString *str &#61; &#64;"你好啊,aBc!";  
  2. NSStringEncoding enc &#61; CFStringConvertEncodingToNSStringEncoding(NSUTF16BigEndianStringEncoding);  
  3. NSData *data &#61; [str dataUsingEncoding:enc];  
  4. Byte *byte &#61; (Byte *)[data bytes];  
  5. for (int i&#61;0 ; i<[data length]; i&#43;&#43;) {  
  6.     NSLog(&#64;"byte &#61; %d",byte[i]);  
  7. }  


最后打印结果为

[java] view plaincopy
  1. 2012-07-19 10:07:46.967 encoding[593:f803] byte &#61; 79  
  2. 2012-07-19 10:07:46.969 encoding[593:f803] byte &#61; 96  
  3. 2012-07-19 10:07:46.969 encoding[593:f803] byte &#61; 89  
  4. 2012-07-19 10:07:46.970 encoding[593:f803] byte &#61; 125  
  5. 2012-07-19 10:07:46.970 encoding[593:f803] byte &#61; 85  
  6. 2012-07-19 10:07:46.970 encoding[593:f803] byte &#61; 74  
  7. 2012-07-19 10:07:46.970 encoding[593:f803] byte &#61; 0  
  8. 2012-07-19 10:07:46.971 encoding[593:f803] byte &#61; 44  
  9. 2012-07-19 10:07:46.971 encoding[593:f803] byte &#61; 0  
  10. 2012-07-19 10:07:46.971 encoding[593:f803] byte &#61; 97  
  11. 2012-07-19 10:07:46.971 encoding[593:f803] byte &#61; 0  
  12. 2012-07-19 10:07:46.972 encoding[593:f803] byte &#61; 66  
  13. 2012-07-19 10:07:46.972 encoding[593:f803] byte &#61; 0  
  14. 2012-07-19 10:07:46.972 encoding[593:f803] byte &#61; 99  
  15. 2012-07-19 10:07:46.972 encoding[593:f803] byte &#61; 0  
  16. 2012-07-19 10:07:46.973 encoding[593:f803] byte &#61; 33  




编码达到了一致&#xff01;



推荐阅读
author-avatar
MC红石粉
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有