GBK编码操作系统(如中文win7系统),在编写控制台程序时,
当读取控制台输入含中文的字符串出现乱码时可以通过以下方法解决:
第一种:String strInput 保存了由控制台输入的字符串(是借助BufferedInputStream对象来获取的)。
解决办法代码:
byte[] byteInput = strInput.getBytes("ISO-8859-1");
strInput = new String(byteInput, "GBK");
即:将初始保存为ISO-8859-1的编码字符串转换为GBK编码类型保存。
--------------------------------------------------------------------------------------
第二种:String strInput保存了有控制台输入的字符串(是借助Scanner对象来获取的)
解决办法代码:
将"Scanner sc = new Scanner(System.in);"
改为
"Scanner sc = new Scanner(System.in, "GBK");"
即:在创建Scanner对象时指定编码类型。