Arduino中Unicode编码和中文互转实现办法?-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9951|回复: 5

[未解决] Arduino中Unicode编码和中文互转实现办法?

[复制链接]
发表于 2018-8-26 10:13 | 显示全部楼层 |阅读模式
Unicode编码和中文互转
请问谁可以帮把下面的JAVA代码转Arduino,谢谢



//中文转Unicode
      public static String gbEncoding(final String gbString) {   //gbString = "测试"
          char[] utfBytes = gbString.toCharArray();   //utfBytes = [测, 试]
          String unicodeBytes = "";   
          for (int byteIndex = 0; byteIndex < utfBytes.length; byteIndex++) {   
              String hexB = Integer.toHexString(utfBytes[byteIndex]);   //转换为16进制整型字符串
                if (hexB.length() <= 2) {   
                    hexB = "00" + hexB;   
               }   
               unicodeBytes = unicodeBytes + "\\u" + hexB;   
          }   
          System.out.println("unicodeBytes is: " + unicodeBytes);   
          return unicodeBytes;   
      }





//Unicode转中文
      public static String decodeUnicode(final String dataStr) {   
         int start = 0;   
         int end = 0;   
         final StringBuffer buffer = new StringBuffer();   
         while (start > -1) {   
             end = dataStr.indexOf("\\u", start + 2);   
             String charStr = "";   
             if (end == -1) {   
                 charStr = dataStr.substring(start + 2, dataStr.length());   
             } else {   
                 charStr = dataStr.substring(start + 2, end);   
             }   
             char letter = (char) Integer.parseInt(charStr, 16); // 16进制parse整形字符串。   
             buffer.append(new Character(letter).toString());   
             start = end;   
         }   
         return buffer.toString();   
      }



发表于 2018-8-26 10:33 | 显示全部楼层
你那个是java库里面的东西  你得去看java库是怎么写的
 楼主| 发表于 2018-8-26 11:35 | 显示全部楼层
我有一段在 Arduino下,中文转Unicode的,
中文没问题,不能转数字,字母、
请赐教:


//将 UTF8 转化为Unicode
for (int i =0;i<BSIZE;i=i+1)
{
     character[i*2]=((buffer[i*3]&0xF)<<4)+((buffer[i*3+1]>>2)&0xF);
     character[i*2+1]=((buffer[i*3+1]&0x3)<<6)+(buffer[i*3+2]&0x3F);
     shuo[i*2]=character[i*2+1];
     shuo[i*2+1]=character[i*2];

}
 楼主| 发表于 2018-8-26 11:46 | 显示全部楼层
问题描述:

4E25  表示汉字:  严
31     表示数字 : 1

数字,字母的长度不够
设置固定长度,不够的在前面加 00 填充

能帮帮我实现下这代码,不胜感激.


发表于 2021-9-26 08:29 | 显示全部楼层
这问题现在用啥解决啊?
发表于 2021-9-26 11:33 | 显示全部楼层
mobilewin 发表于 2021-9-26 08:29
这问题现在用啥解决啊?

换个IDE问题解决
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 23:56 , Processed in 0.160024 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表