关于Windows下cmd.exe的UTF-8问题

本来是因为SQLPLUS乱码, 才搞这么多东西.
结果发现直接把注册表
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1
的 NLS_LANG 值改为
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
就什么事也没有了, 也不会影响到原来编码是UTF-8的项目.


-------------- 无奈的分割线 --------------

1. 不要用 chcp 65001 ,坑爹的。
用了之后,不能输入中文,使用中文路径也会出错。
如果已经用了,可以用 chcp 936 改回来。

2. 改用cygwin:http://cygwin.com/setup.exe

3. cygwin目录下的权限问题:
如果重装过系统,想再修改cygwin的配置文件,就会拒绝访问。
解决办法:
文件属性→安全→高级→所有者→编辑,选择你当前的用户;
关了属性窗口再开,把前面带问号的用户都删了,再赋给everyone所有权限。
搞定。

4. cygwin所创建文件的权限问题:
由于cygwin会模拟linux的权限控制, 所以cygwin所创建的文件, 会有跟第3点一样的问题。
解决办法:
打开文件 cygwin\etc\fstab ,将下面这句加到文件的最后一行:
none / cygdrive binary,user,noacl,posix=0 0 0

5. 将“我的电脑”挂载到根目录:
默认的初始目录为cygwin里的用户目录,要进入其他盘需要用mount挂载,很不方便。
解决方法:
同4。
之后就可以直接用 /盘符 访问其他盘了,例如可以用 /c/windows 访问到 c:\windows 文件夹。

你可能感兴趣的:(C++,c,windows,linux,C#)