>  Q&A  >  본문

java中这个页面默认是utf-8编码的,1输出乱码可以理解,可是2就不理解了?

s按照gbk解码,在按照gbk组合成String,为什么就不是乱码了呢? 那2这个字符串是最终是什么编码 utf-8还是gbk

PHPzPHPz2743일 전693

모든 응답(2)나는 대답할 것이다

  • 天蓬老师

    天蓬老师2017-04-18 10:53:36

    1: s.getBytes()가 매개변수를 사용하지 않으면 jdk의 기본 인코딩(사용자의 인코딩은 utf-8일 수 있음)을 호출하여 문자열을 byte[]로 디코딩한 다음 gbk 인코딩 방법을 사용하여 다시 -바이트[]를 문자열로 인코딩하여 해독하므로 잘못된 문자가 나타납니다.

    2.s.getBytes('gbk') gbk 방식에 따라 문자열을 디코딩한 후 gbk 방식을 사용하여 다시 인코딩하면 문자가 깨지는 현상이 발생하지 않습니다.

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-18 10:53:36

    위에서 말씀하신 내용이 맞습니다. jdk의 기본 인코딩은 file.encoding에 지정된 인코딩입니다. Dfile.encoding=GBK을 사용하여 JVM의 기본 인코딩을 수정할 수 있습니다.

    코딩 및 디코딩 지식을 추가하려면 한자 "안녕하세요"를 컴퓨터로 전송하려면 바이너리로 변환해야 합니다. 바이너리로 변환하는 방법은 여기서 언급한 디코딩입니다.
    문자 집합 등 Unicode을 인코딩하는 방법은 여러 가지가 있습니다. 이 문자 집합에는 다양한 기호에 해당하는 숫자가 포함되어 있습니다. 예를 들어 은 2345로 표시되며 특정 방식으로 이진수로 변환됩니다(변환 방법에 대한 특정 프로세스는 온라인에서 찾을 수 있습니다).
    이진수 문자열을 받은 후 한자로 변환하는 방법은 여기서 언급한 인코딩입니다. 올바른 문자 대응을 얻으려면 인코딩을 특정 방식으로 해결해야 합니다. 예를 들어 의 바이너리는 0101010010이고 기호를 얻으려면 utf-8에 따라 인코딩해야 합니다. 그것을 표시하십시오.

    회신하다
    0
  • 취소회신하다