Articles of UTF 8

通过Powershell或Batch将文件从Windows转换到UNIX

我有一个批处理脚本,提示用户input一些input,然后输出我在AIX环境中使用的几个文件。 这些文件需要在UNIX格式(我相信是UTF8),但我正在寻找一个方向,以最简单的方式做到这一点。 我不喜欢下载额外的软件包; Cygwin或GnuWin32。 我不介意编码,如果可能的话,我的编码选项是批处理,Powershell和VBS。 有谁知道一个办法做到这一点? 或者,我可以使用批处理创build文件并调用Powershell脚本来重新创build这些文件? 这里的想法是一个用户会被提示input一些信息,然后输出一个标准文件,这些文件在AIX中基本上是一个工作的快速答案。 我最初使用批处理,因为我不知道我会遇到这个问题,但我有点倾向于在Powershell中重做这个。 因为我在另一个可以进行转换的论坛上find了一些代码(下面)。 % foreach($i in ls -name DIR/*.txt) { \ get-content DIR/$i | \ out-file -encoding utf8 -filepath DIR2/$i \ } 寻找一些方向或在这方面的一些input。

如何在Windows下的cmd窗口中显示日语汉字?

我有一个英文的Windows 2003服务器,激活了亚洲语言支持。 命令窗口中可用的两种字体(cmd设置)是光栅和lucida控制台。 没有一个或另一个正确显示汉字(显示为问号)。 有没有解决scheme让他们显示? 在写出控制台之前,我的应用程序中是否有一些转变? 我现在正在编写UTF8,对于一些非ASCII字符(如öäüß)也适用。 写入控制台的源代码具有正确的数据(日文汉字可以在debugging器中正确查看)。 如果有问题,我正在用C#编写应用程序。 编辑:我发现这个链接 ,它解释了问题背后的问题,并提出了C#解决scheme(涉及本地调用)。 这应该适用于.NET 4.5(我未经testing)

在Windows XP上使用国际字符批量重命名文件

我有一大堆使用我们可爱的瑞典字母å和ö的文件名。 由于各种原因,我现在需要将它们转换为[a-zA-Z]范围。 只是删除这个范围以外的东西是相当容易的。 引起我的麻烦的是我想用o , o等replaceö 。 这是最糟糕的charset麻烦。 我有一组testing文件: files\Copy of New Text Documen åäö t.txt files\fofo.txt files\New Text Document.txt files\worstcase åäöÅÄÖéÉ.txt 我将脚本放在这一行上,将结果input到各种命令中 for %%X in (files\*.txt) do (echo %%X) 奇怪的是,如果我把这个(简单的for循环是)的结果打印到一个文件中,我得到这个输出: files\Copy of New Text Documen †„” t.txt files\fofo.txt files\New Text Document.txt files\worstcase †„”Ž™‚.txt 因此,在我的文件名甚至到达其他工具(我一直在尝试使用一个叫做GnuWin32的Windows的sed端口来做到这一点,但目前为止没有运气),并且对这些字符进行replace帮助。 你将如何解决这个问题? 我打开任何types的工具,命令行或其他… 编辑:这是一个一次性的问题,所以我正在寻找一个快速“丑陋的修复

Unicode(utf-8)和git-bash

我有一些麻烦让unicode工作git-bash(在Windows 7上)。 我尝试了很多事情,但都没有成功。 虽然,我不太清楚这是什么责任,所以我可能会在错误的方向工作。 这真的应该是可能的,因为cmd.exe的编码可以通过'chcp 65001'改成unicode。 以下是我尝试过的一些事情(除了通过GUI中的configuration选项来查看)。 在“.bashrc”中设置环境variables。 我想这是有道理的,这是行不通的,因为我认为这是一个Linux的东西。 'locale'命令不存在。 export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 export LANGUAGE=en_US.UTF-8 从cmd.exe开始,使用“chcp 65001”将编码更改为unicode,然后启动git-bash。 这使我得到一个权限被拒绝时,试图猫我的unicodetesting文件。 但是,捕获一个没有unicode的文件工作得很好。 如演示,退出到cmd.exe我仍然可以“猫”的文件。 使用我的默认编码(437)我可以在bash中捕获该文件(没有权限被拒绝,但输出是伪造的)。 S:\>chcp 65001 Active code page: 65001 S:\>"C:\Program Files (x86)\Git\bin\sh.exe" –login -i zarac@TOWELIE /z cat /s/unicode.txt cat: write error: Permission denied zarac@TOWELIE /z cat /s/nounicode.txt abc zarac@TOWELIE /z L /s/unicode.txt -rw-r–r– 1 zarac Administ […]

使用控制台获取python以在Windows XP上以UTF8打印

我想在Windows XP上configuration我的控制台,以支持UTF8,并让Python检测并使用它。 到目前为止,我的尝试: C:\Documents and Settings\Philippe>C:\Python25\python.exe Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> print u'é' é >>> import sys >>> sys.stdout.encoding 'cp437' >>> quit() 所以,默认情况下,我在cp437和python检测,这很好。 C:\Documents and Settings\Philippe>chcp 65001 Active code page: 65001 C:\Documents and Settings\Philippe>python Python 2.5.2 […]

如何在Windows控制台中显示utf-8

我在Windows 7上使用Python 2.6 我从这里借用了一些代码: Python,Unicode和Windows控制台 我的目标是能够在Windows控制台中显示uft-8string。 在python 2.6中进行了可怕的修改 sys.setdefaultencoding函数() 不再支持 不过,在我尝试使用它之前,我写了reload(sys),它神奇地没有错误。 此代码不会出错,但会显示有趣的字符而不是日文文本。 我相信问题是因为我没有成功改变Windows控制台的代码页。 这些是我的尝试,但他们不工作: reload(sys) sys.setdefaultencoding('utf-8') print os.popen('chcp 65001').read() sys.stdout.encoding = 'cp65001' 也许你可以使用win32console来改变代码页? 我试过从我链接的网站的代码,但它也从win32console错误..也许代码是过时的。 这是我的代码,这不是错误,但打印有趣的字符: #coding=<utf8> import os import sys import codecs reload(sys) sys.setdefaultencoding('utf-8') sys.stdout = codecs.getwriter('utf8')(sys.stdout) sys.stderr = codecs.getwriter('utf8')(sys.stderr) #print os.popen('chcp 65001').read() print(sys.stdout.encoding) sys.stdout.encoding = 'cp65001' print(sys.stdout.encoding) x = raw_input('press enter to continue') a […]

从R写入UTF-8文件

虽然R似乎在内部很好地处理Unicode字符,但是我不能用这种UTF-8 Unicode字符在R中输出dataframe。 有什么办法强制这个? data.frame(c("hīersumian","ǣmettigan"))->test write.table(test,"test.txt",row.names=F,col.names=F,quote=F,fileEncoding="UTF-8") 输出文本文件如下所示: hiersumian <U+01E3>mettigan 我在Windows环境(Windows 7)中使用R版本3.0.2。 编辑 在答案中已经提出,R正确地以UTF-8编写文件,问题出在我用来查看文件的软件上。 下面是一些代码,我在R中做所有的事情。我正在用UTF-8编码的文本文件中读取,R读取正确。 然后R用UTF-8写出文件并再次读取,现在正确的Unicode字符不见了。 read.table("myinputfile.txt",encoding="UTF-8")->myinputfile myinputfile[1,1] write.table(myinputfile,"myoutputfile.txt",row.names=F,col.names=F,quote=F,fileEncoding="UTF-8") read.table("myoutputfile.txt",encoding="UTF-8")->myoutputfile myoutputfile[1,1] 控制台输出: > read.table("myinputfile.txt",encoding="UTF-8")->myinputfile > myinputfile[1,1] [1] hīersumian Levels: hīersumian ǣmettigan > write.table(myinputfile,"myoutputfile.txt",row.names=F,col.names=F,quote=F,fileEncoding="UTF-8") > read.table("myoutputfile.txt",encoding="UTF-8")->myoutputfile > myoutputfile[1,1] [1] <U+FEFF>hiersumian Levels: <U+01E3>mettigan <U+FEFF>hiersumian >

为什么当我的Perl程序在cmd.exe中输出一个UTF-8编码的string时,我得到了最后一个八位字节?

更新 正如@ikegami所build议的,我把这个报告为一个bug。 用于perl5的Bug#121783:Windows:带有代码页65001的cmd.exe中的UTF-8编码输出会导致意外的输出 考虑以下C和Perl程序,它们在标准输出上输出string“αβγ”的UTF-8编码: C版本: #include <stdio.h> int main(void) { /* UTF-8 encoded alpha, beta, gamma */ char x[] = { 0xce, 0xb1, 0xce, 0xb2, 0xce, 0xb3, 0x00 }; puts(x); return 0; } 输出: C:\ …> chcp 65001 有效代码页:65001 C:\ …> cttt.exe αβγ Perl版本: C:\ …> perl -e“print qq {\ xce \ xb1 \ xce […]

Unicode / UTF-8文本文件:在Windows控制台上乱码(尝试显示希伯来语)

我有一个宽的字符文件(用希伯来语文本),在记事本中看起来很好(保存在“UTF-8编码”),在Notepad ++中可以正常读取,当我复制并粘贴到MS Word中时,它看起来也不错。 但是,当我打开一个“DOS框”(Windows控制台),并去:“键入file.txt”,它打印乱码。 是的,我已经在Windows控制台上完成了对Unicode的所有build议:我使用“cmd / u”打开控制台,将字体更改为Lucida,并input:“chcp 65001”。 在运行Windows 7的PC上以及在运行Windows XP SP3的另一台PC上,问题是一样的。

Java,UTF-8和Windows控制台

我们尝试在Windows上使用Java和UTF-8。 应用程序将日志写入控制台,并且我们希望使用UTF-8作为日志,因为我们的应用程序具有国际化日志。 可以使用-Dfile.encoding=UTF-8作为JVM的参数来configurationJVM,使其生成UTF-8。 它工作正常,但在Windows控制台上的输出是乱码。 然后,我们可以将控制台的代码页设置为65001( chcp 65001 ),但在这种情况下, .bat文件不起作用。 这意味着,当我们尝试通过我们的脚本(名为start.bat)启动我们的应用程序时,绝对没有任何反应。 该命令简单的返回: C:\Application> chcp 65001 Activated code page: 65001 C:\Application> start.bat C:\Application> 但没有chcp 65001 ,没有问题,应用程序可以启动。 有关于此的任何提示?