iteye_2561 2009-04-04 20:30
浏览 239
已采纳

怎样把整型用unicode格式输出

我想写一个小程序想把16进制转换文中文,但是我一直解决不了怎么把一个整数转化为unicode格式。谁能帮帮我啊。。感激不尽
例如50403准换为unicode的格式应该怎么办

  • 写回答

2条回答 默认 最新

  • rednaxelafx 2009-04-05 01:28
    关注

    对单个Unicode codepoint要转换为Java可用的UTF-16字符序列,用Character.toChars(int)。要进一步转换为别的编码的话,用CharsetEncoder就行;或者用String.getBytes也行,但它的内部实际上也用了CharsetEncoder来做转换。

    [code="java"]import java.nio.*;
    import java.nio.charset.*;

    public class Test {
    public static void main(String[] args) throws Exception {
    StringBuilder sb = new StringBuilder();
    sb.appendCodePoint(0x4f60);
    String result = sb.toString();
    System.out.println(result); // 你
    byte[] gbkBytes = result.getBytes("GBK");
    System.out.printf("%x%x\n", gbkBytes[0], gbkBytes[1]); // c4e3

        ////////////////////////////////////////////
    
        char[] ca = Character.toChars(0x4f60); // unicode codepoint -> UTF-16 array
        CharsetEncoder gbkEncoder = Charset.forName("GBK").newEncoder();
        CharBuffer cbuf = CharBuffer.wrap(ca);
        ByteBuffer bbuf = gbkEncoder.encode(cbuf);
        byte[] gbkBytes2 = bbuf.array();
        System.out.printf("%x%x\n", gbkBytes2[0], gbkBytes2[1]); // c4e3
    
        int gbkCode2 = bbuf.asShortBuffer().get() & 0x0FFFF;
        System.out.printf("%x\n", gbkCode2); // c4e3
    }
    

    }[/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 鼠标右键,撤销删除 复制 移动,要怎样删除
  • ¥15 使用MATLAB进行余弦相似度计算加速
  • ¥15 服务器安装php5.6版本
  • ¥15 我想用51单片机和数码管做一个从0开始的计数表 我写了一串代码 但是放到单片机里面数码管只闪烁一下然后熄灭
  • ¥20 系统工程中,状态空间模型中状态方程的应用。请猛男来完整讲一下下面所有问题
  • ¥15 我想在WPF的Model Code中获取ViewModel Code中的一个参数
  • ¥15 arcgis处理土地利用道路 建筑 林地分类
  • ¥20 使用visual studio 工具用C++语音,调用openslsx库读取excel文件的sheet问题
  • ¥100 寻会做云闪付tn转h5支付链接的技术
  • ¥15 DockerSwarm跨节点无法访问问题