Articles of 代码页

如何指定与基础Windows代码页一致的Java file.encoding值?

我有一个使用InputStreamReader通过套接字接收数据的Java应用程序。 它从它的getEncoding方法报告“Cp1252”: /* java.net. */ Socket Sock = …; InputStreamReader is = new InputStreamReader(Sock.getInputStream()); System.out.println("Character encoding = " + is.getEncoding()); // Prints "Character encoding = Cp1252" 这与系统报告的代码页不一定匹配。 例如: C:\> CHCP 有效代码页:850 应用程序可以接收字节0x81,在代码页850中代表字符ü 。 程序使用代码页1252来解释那个字节,它没有在那个值上定义任何字符,所以我得到了一个问号。 我能够通过在启动应用程序的batch file中添加另一个命令行选项来为使用代码页850的一位客户解决此问题: java.exe -Dfile.encoding = Cp850 … 但是,当然,并不是所有的客户都使用代码页850。 我如何让Java使用与底层Windows系统兼容的代码页? 我的偏好是我可以放在batch file中,而不改变Java代码: ENC = … java.exe -Dfile.encoding =%ENC%…

chcp 65001代码页导致程序终止,没有任何错误

问题 当我想在Python解释器中input Unicode字符时出现问题(为了简单起见,我在示例中使用了一个变音符号,但是我已经第一次遇到了这个波斯语字符)。 每当我用chcp 65001代码页使用python,然后尝试input一个Unicode字符,Python就不会出现任何错误。 我花了好几天的时间试图解决这个问题无济于事。 但是今天,我在Python网站上发现了一个线程,另外一个在MySQL上 ,另一个在Lua用户上,这个突然退出的问题引发了一些问题,尽pipe没有任何解决办法,有人说chcp 65001本质上是坏的。 一劳永逸地知道这个问题是否与chcp-design-related有关或者有可能的解决方法是很好的。 重现错误 chcp 65001 Python 3.X: Python shell print('ä') 结果:它只是退出shell 然而 ,这个工程python.exe -c "print('ä')"也是这样的: print('\u00e4') 结果:ä 在Luajit2.0.4 print('ä') 结果:它只是退出shell 然而这个工作: print('\xc3\xa4') 到目前为止,我已经提出了这个观察: 用命令提示符直接输出。 基于Unicode的,基于hex的angular色作品的等价物。 所以这不是一个Python错误,我们不能直接在Windows命令提示符或其任何包装如Conemu,Cmder(我使用Cmder能够看到和使用Windows中的Unicode字符壳和我没有任何问题,所以这样做)。 它是否正确?

Codepage 850工作,65001失败! 没有回应“call foo.cmd”。 内部命令工作正常

这个问题基本解释了这个问题。 我正在使用Windows XP专业版Service Pack 3 COMSPEC = C:\窗口\ system32 \ cmd.exe的 我通过启动…运行对话框cmd.exe启动了控制台 这是我的控制台的“视图”: 该命令,然后输出(和我的/ /评论) C:\> chcp 850 Active code page: 850 // output is as expected C:\> echo @chcp ^& REM 850>test850.cmd // no output; as ecpected) C:\> type test850.cmd @chcp & REM 850 // output is as expected C:\> call test850.cmd Active code […]

psql shell使用代码页850,windows使用1252.如何解决更改控制台代码页?

我已经安装PostgreSQL,想build立一个新的数据库,一切都很好,直到我试图使用欧元符号。 然后我知道,我得到的这个警告是有原因的。 我在启动我的psql shell的警告是: WARNING: Console code page (850) differs from Windows code page (1252) 8-bit characters might not work correctly. See psql reference page "Notes for Windows users" for details. 所以我打算按照我的说法(来自PostgreSQL Documentation 9.2 – psql ): Windows用户注意事项 psql构build为“控制台应用程序”。 由于Windows控制台窗口使用与系统其余部分不同的编码,因此在psql中使用8位字符时必须格外小心。 如果psql检测到有问题的控制台代码页,它会在启动时警告你。 要更改控制台代码页,有两件事是必要的: 通过inputcmd.exe / c chcp 1252来设置代码页。 (1252是适合于德语的代码页;用你的值replace它。)如果你使用的是Cygwin,你可以把这个命令放在/ etc / profile中 。 将控制台字体设置为Lucida控制台 ,因为光栅字体不能与ANSI代码页一起使用。 当我键入cmd.exe […]

如何获取当前键盘布局的代码页?

我的非Unicode应用程序需要能够处理Unicode键盘input(WM_CHAR /等),从而接收8位字符代码,然后在内部将其转换为Unicode。 9x兼容性是必需的,所以使用大多数Unicode API不是一个选项。 目前,它查看PRIMARYLANGID(GetKeyboardLayout(0))返回的语言,并在硬编码表中查找相关代码页。 我找不到一个函数来获取特定语言或键盘布局使用的代码页。 然后可以使用MultiByteToWideChar来转换字符/string。 有没有办法获得当前的键盘布局的代码页? GetACP返回默认的系统代码页面,不受当前键盘布局的影响。

Windows的每个语言版本的默认代码页

我在哪里可以find哪些代码页是Windows的每个语言版本默认的信息? 即每个语言版本的“ANSI”代码页。 我find了Windows支持的代码页 ,但找不到每种语言的默认值。 我猜测,例如,Windows-1253(希腊语)是安装希腊语版本时的默认值。 但是其他代码页呢? 而Windows-1253是任何其他语言版本的默认值?

cmd.exe启动时使用的编码/代码页是什么?

以前有人问过几乎相同的问题。 在回复中给出了对代码页的一个很好的解释,但是它并没有回答我脑海中的问题:什么控制了cmd.exe启动时使用的代码页? 在我的系统上,它以某种方式被改变。 在registry项HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Nls \ CodePage中,有一个项目OEMCP设置为437.这似乎是全新重新启动后由cmd.exe使用的CP(如chcp所示)稍后有些东西会改变它,并在新的cmd.exe窗口中变成1252。 如果我用chcp将它改为437,那只会影响当前的cmd.exe。 当我退出并重新启动cmd.exe时,chcp在新窗口中显示1252。 什么控制cmd.exe启动时使用的默认CP? 它是如何从registry中的值改变的? 如何防止它被更改和/或将其更改回到新的命令窗口?