当前位置: 首页 > 知识库问答 >
问题:

java utf8编码-字符,字符串类型

钮才哲
2023-03-14
public class UTF8 {
    public static void main(String[] args){
        String s = "ヨ"; //0xFF6E
        System.out.println(s.getBytes().length);//length of the string
        System.out.println(s.charAt(0));//first character in the string
    }
}
3
ヨ

对于Java/general中有关此概念的任何好的参考资料,我们将不胜感激。

共有1个答案

公冶泰
2023-03-14

代码示例中没有任何内容直接使用UTF-8。Java字符串在内存中使用UTF-16编码。不适合单个16位字符的Unicode码点将使用称为代理项对的2字符对进行编码。

如果不向string.getBytes()传递参数值,它将返回一个字节数组,其中包含使用底层操作系统默认字符集编码的string内容。如果希望确保UTF-8编码的数组,那么需要使用getbytes(“UTF-8”)

调用string.charat()只从字符串的内存中返回原始的UTF-16编码字符。

 类似资料:
  • 6. 字符类型与字符编码 字符常量或字符型变量也可以当作整数参与运算,例如: printf("%c\n", 'a'+1); 执行结果是b。 我们知道,符号在计算机内部也用数字表示,每个字符在计算机内部用一个整数表示,称为字符编码(Character Encoding),目前最常用的是ASCII码(American Standard Code for Information Interchange,

  • 问题内容: 我收到一个json数据对象,然后从中提取一个字符串 然后我尝试使该字符串适合在URL中使用 但它不起作用 如果我对newCountryString进行了硬编码,它将起作用,为什么呢? 问题答案: 用这个 - 此代码将使用给定的编码返回接收方的表示形式,以确定将接收方转换为合法URL字符串所需的转义百分比。 有关更多详细信息:https : //developer.apple.com/d

  • 字符编码 我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题。 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是655

  • 字符编码 我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题。 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是655

  • 问题内容: ’=?KOI8-R?B?W1JFUS0wMDI1NDEtNDc5NzddIO / h7yAi89TSz8rGwdLGz9IiIDs =?= \ r \ n \ t =?KOI8-R?B?Ry43MjkgKDEwKQ ==?=’ 如何将其转换为可读的内容?谢谢 ! 问题答案: email.header.decode_header(‘=?KOI8-R?B?W1JFUS0wMDI1NDEtN

  • 问题内容: 输出: 请帮助我理解这一点。试图了解utf8编码在Java中的工作方式。按照char 字符的 java doc定义 :char数据类型是单个16位Unicode字符。 这是否意味着Java中的char类型只能支持那些可以用2个字节表示的unicode字符,且不能超过2个字节? 在上面的程序中,为该字符串分配的字节数为3,但是在返回第一个字符的第三行中(java中为2个字节)可以容纳3个