代码如下: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阿?
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阿?
String str = "测试";不是“你好”
gbk和utf8的编码机制是不一样的,所以得到的字节数组长度也不一样。当然打印的结果也就不一样了。
; "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"
http://bbs.blueidea.com/archiver/tid-2566773.html