草庐IT

codepages

全部标签

ruby - Notepad++ 只是调用 "ANSI"的编码,有谁知道在 Ruby 中如何调用它?

我有一堆.txt,Notepad++说(在其下拉“编码”菜单中)是“ANSI”。它们中有德语字符[äöüß],在Notepad++中显示良好。但是当我File.read'thisisaGermantextexample.txt'它们时,它们并没有正确显示在irb中。那么有人知道我应该给Encoding.default_external=什么参数吗?(我假设这就是解决方案,对吧?)当'utf-8'或'cp850'时,它读取带有“äöüß”的“ANSI”文件为“\xE4\xF6\xFC\xDF”...(请不要犹豫,在你的回答中提及明显“显而易见”的事情;我和你一样新手,但仍然知道足以问这个

windows - 如何检测 UTF8 文本的等效 Windows 代码页

我有一个在WindowsXP上运行的打印/邮件系统,它不支持在邮件列表中使用UTF8。我想将邮件列表的代码页转换为适当的Windowsnative等效项。但据我所知,它并不是一刀切的,并且代码页会根据语言环境而有所不同,例如匈牙利、希腊、瑞典、德国、俄罗斯等。更不用说繁体中文等等了。有没有一种方法可以检测,比如对于一条记录,其中不应需要多个代码页,合适的Windows代码页是什么? 最佳答案 我能想到的最简单的想法:对于所有支持的代码页列表中的每个代码页X:取原始Unicode文本将其转换为代码页X。将其转换回来。检查是否有任何变化

windows - 在为他人制作的批处理文件中使用另一种语言(代码页)

所以我有一个批处理文件工具,原来是英文的,我正在翻译成其他各种语言。我的情况是许多语言都使用特殊字符。就我而言,它是德语。所以我可能会用英文的:echoAdministrativepermissionsrequired.Detectingpermissions...然后在德语中,我会:Administratorrechtebenötigt.ÜberprüfeBerechtigungen...它使用不同类型的字符。现在,在我的研究中,我找到了用于更改代码页的Windows命令chcp。现在,我要做的是更改代码页(或任何其他执行此操作的方式)以允许显示这些字符。我当前的代码页是美国英语的代

java - Java能改自己控制台的codepage吗?

呼应https://stackoverflow.com/a/17177904/14731的结论,应用程序需要调用WriteConsoleW或chcp才能将unicode字符输出到Windows控制台。我不想使用JNI,所以WriteConsoleW方法已经过时了。Java应用程序是否可以在其运行的控制台上调用chcp?据我所知,调用Runtime.exec("cmd.exe","/c","chcp","65001")将创建一个新控制台,更改其代码页,然后终止控制台。也就是说,现有控制台不会受到影响。 最佳答案 基于直觉,我试过:Pr

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

之前问过一个几乎相同的问题。回复中很好的解释了codepages,但是没有回答我心中的疑问:cmd.exe启动时使用的codepage由什么控制?在我的系统上,它以某种方式被改变了。在注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage中,有一项OEMCP设置为437。这似乎是重新启动后cmd.exe使用的CP(如chcp所示),但是后来有些东西改变了它,它在新的cmd.exe窗口中变成了1252。如果我用chcp将它更改为437,那只会影响当前的cmd.exe。当我退出并重新启动cmd.exe时,ch

windows - 使用 MME 和 DirectMusic 时的 ANSI 或 OEM 代码页?

我注意到,当从MME读取MIDI端口名称时,名称是使用ANSI代码页编码的多字节字符串,我的应用程序默认使用该代码页。从DirectMusic驱动程序接收这些名称时,这些名称是使用OEM代码页编码的宽字符字符串。参见thisarticlebyRaymondChen快速回顾代码页。在我的德语系统上,这意味着当使用当前代码页时,结果是ANSI代码页,我从MME得到“Audiogerät”,从DirectMusic得到“Audiogeröt”,后者是错误的。当我将姓氏视为OEM编码时,此问题得到解决。那么我怎么知道用哪个代码页来解码这些名字呢?为什么来自DirectMusic的名称编码不同?

windows - 在 Windows C++ 控制台应用程序中使用 wchar_t/wmain 是否有意义?

我一直在用C++编写一个新的命令行应用程序。我们支持的平台之一当然是Windows。默认情况下,Windows控制台根据区域设置使用OEM代码页(例如,在我的机器上是CP437/DOS.Western)。我认为,如果它是Windows西里尔文版本,它应该是CP866,等等。这些OEM代码页仅包含256个字符)我认为这意味着Windows控制台根据默认代码页将输入的击键转换为字符。(并且,根据当前选择的字体,如果有相应的字形,则显示)。在这种情况下,在我的应用程序中使用wmain/wchar_t和宽字符类型是否有意义?使用宽类型有什么好处吗?或者如果只使用char*会有什么严重的问题吗?

windows - 如何将 encodingName 转换为 codePage 标识符?

给定一个编码名称,我怎样才能得到相应的codePageidentifier?例如:“iso-8859-1”:28591“windows-1252”:1252“IBM500”:500“utf-16le”:1200“utf-8”:65001假设用例:Windows函数MultiByteToWideChar只需要一个CodePage,而我只有一个encodingName.和EnumSystemCodePages返回字符串列表,而不是代码页标识符(因此您不能将它们传递给GetCPInfo)。红利阅读MSDN:Listofcodepageidentifiers 最佳答

windows - 如何手动确定当前操作系统的 CodePage 和 Locale

有没有办法让我手动让用户查找其Windows操作系统的当前代码页和语言环境?是否有存储该信息的注册表设置?如果该技术一直适用于Windows2000,它也会很有用。 最佳答案 Win32GetACP()function返回到Windows2000以查找ANSI代码页。GetLocaleInfo()函数也适用于Windows2000。使用LOCALE_SYSTEM_DEFAULT(或LOCALE_USER_DEFAULT等)的Locale参数调用它如果您的问题不是如何以编程方式获取此数据,而是非程序员如何查找此信息,那么您可能想在Se

windows - 如果我的 OEMCP 设置为 437 那么为什么我的 cmd.exe 默认代码页是 932?我该如何解决这个问题?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎不是关于aspecificprogrammingproblem,asoftwarealgorithm,orsoftwaretoolsprimarilyusedbyprogrammers的.如果您认为这个问题是关于anotherStackExchangesite的主题,您可以发表评论,说明问题可能在哪里得到解答。关闭5年前。Improvethisquestion很久以前,我想将Windows控制台的默认代码页(CP)更改为UTF-8(以查看日文字符)。我不记得我使用的命令,但无论如何我最终设