代码如下:String str = "你好";
byte[] b = str.getBytes("gbk");
for(byte a: b) System.out.print(a);
System.out.println();String newstr = new String(b,"utf-8");
byte[] newb = newstr.getBytes("utf-8");
for(byte a: newb) System.out.print(a);显示结果
-78-30-54-44
-17-65-67-17-65-67-17-65-67-17-65-67为什么byte[] b 经过utf-8的解码再编码后就变掉了?用utf-8解码再用utf-8编码后应该还是原来的b阿?

解决方案 »

  1.   

    写错了,第一句是:
    String str = "测试";不是“你好”
      

  2.   

    怎么说呢?
    gbk和utf8的编码机制是不一样的,所以得到的字节数组长度也不一样。当然打印的结果也就不一样了。
      

  3.   

    ;
    ; "Command Prompt Here" PowerToy
    ;
    ; Copyright 1996 Microsoft Corporation
    ;
    [version]
    signature="$CHICAGO$"[DosHereInstall]
    CopyFiles = DosHere.Files.Inf
    AddReg    = DosHere.Reg[DefaultInstall]
    CopyFiles = DosHere.Files.Inf
    AddReg    = DosHere.Reg[DefaultInstall.ntx86]
    CopyFiles = DosHere.Files.Inf
    AddReg    = DosHere.Reg.NT[DefaultUnInstall]
    DelFiles  = DosHere.Files.Inf
    DelReg    = DosHere.Reg[DefaultUnInstall.ntx86]
    DelFiles  = DosHere.Files.Inf
    DelReg    = DosHere.Reg.NT[SourceDisksNames]
    55="DOS Prompt Here","",1[SourceDisksFiles]
    DOSHERE.INF=55[DestinationDirs]
    DosHere.Files.Inf = 17[DosHere.Files.Inf]
    DOSHERE.INF[DosHere.Reg]
    HKLM,%UDHERE%
    HKLM,%UDHERE%,DisplayName,,"%DosHereName%"
    HKLM,%UDHERE%,UninstallString,,"%10%\rundll.exe setupx.dll,InstallHinfSection DefaultUninstall 132 %17%\DosHere.inf"
    HKCR,Directory\Shell\DosHere,,,"%DosHereAccel%"
    HKCR,Directory\Shell\DosHere\command,,,"%10%\command.com /k cd ""%1"""
    HKCR,Drive\Shell\DosHere,,,"%DosHereAccel%"
    HKCR,Drive\Shell\DosHere\command,,,"%10%\command.com /k cd ""%1"""[DosHere.Reg.NT]
    HKLM,%UDHERE%
    HKLM,%UDHERE%,DisplayName,,"%DosHereName%"
    HKLM,%UDHERE%,UninstallString,,"rundll32.exe syssetup.dll,SetupInfObjectInstallAction DefaultUninstall 132 %17%\DosHere.inf"
    HKCR,Directory\Shell\DosHere,,,"%DosHereAccel%"
    HKCR,Directory\Shell\DosHere\command,,,"%11%\cmd.exe /k cd ""%1"""
    HKCR,Drive\Shell\DosHere,,,"%DosHereAccel%"
    HKCR,Drive\Shell\DosHere\command,,,"%11%\cmd.exe /k cd ""%1"""[Strings]
    DosHereName="Command Prompt Here PowerToy"
    DosHereAccel="Command &Prompt Here"
    UDHERE="Software\Microsoft\Windows\CurrentVersion\Uninstall\DosHere"
      

  4.   

    http://ai.kaist.ac.kr/~sjcho/semantic-web/xmlintro-a4.pdf
    http://bbs.blueidea.com/archiver/tid-2566773.html
      

  5.   

    http://www.microsoft.com/technet/prodtechnol/ie/reskit/6/part2/c06ie6rk.mspx?mfr=true