首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找出小焦炭的utf-8值

找出小焦炭的utf-8值
EN

Stack Overflow用户
提问于 2014-08-23 13:52:05
回答 2查看 39关注 0票数 1

这有点让人困惑,

我试图得到小特萨字符的utf-8 int值,它应该是225182191:编码,但是:

代码语言:javascript
复制
    public static void main(String... args){

    char c='Ɵ';
    System.out.println((byte)c);
}

指纹:-97 (?)我确实将eclipse上的文本编码方案从MacRoman更改为UTF-8。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-23 14:24:37

文本源文件的编码与运行时的情况无关。

Java字符是一个16位宽的值。它总是隐式的UTF-16。

当编译器生成.class文件时,char文本被转换为UTF-16,并存储在类恒定池中的int结构中。由于紧凑的原因,字符串被转换为修改的UTF-8。

当任何一个被JVM加载时,它们都表示为内存中的UTF-16值/序列。

将值从UTF-16转换为UTF-8:

代码语言:javascript
复制
char c = '\u03B8'; // greek small letter theta θ
for (byte b : String.valueOf(c).getBytes(StandardCharsets.UTF_8)) {
  int unsigned = b & 0xFF;
  System.out.append(" ").print(unsigned);
}

FYI:三字节十进制序列225 182 191是“修饰符字母小θ”,而不是“希腊小写字母θ”。

票数 2
EN

Stack Overflow用户

发布于 2014-08-23 14:24:04

它应该转换为int,或者作为字符串使用,并调用方法codepointAt(0)

代码语言:javascript
复制
        char c='Ɵ';
    System.out.println((int)c);
    System.out.println("Ɵ".codePointAt(0));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25462660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档