以下代码: var text = (new WebClient()).DownloadString("http://export.arxiv.org/api/query?search_query=au:Freidel_L*&start=0&max_results=20")); 会产生一个variablestext ,其中包含string “$κ$ –Minkowski空间,标量场和洛伦兹不变性的问题” 但是,当我在Firefox中访问该URL时,我可以得到 $κ$ -Minkowski空间,标量场和洛伦兹不变性的问题 这实际上是正确的。 我也试过了 var data = (new WebClient()).DownloadData("http://export.arxiv.org/api/query?search_query=au:Freidel_L*&start=0&max_results=20"); var text = System.Text.UTF8Encoding.Default.GetString(data); 但这给了同样的问题。 我不确定这里的错在哪里。 Feed是否是UTF8编码的,浏览器足够聪明,而不是WebClient ? Feed是否正确地使用了UTF8编码,但WebClient以其他方式失败? 我可以做些什么来减轻这一点?
unicode标准有足够的代码点,你需要4个字节来存储它们。 这就是UTF-32编码所做的。 然而,UTF-8编码以某种方式通过使用称为“可变宽度编码”的东西将它们挤压到更小的空间中。 实际上,它只是用一个字节表示US-ASCII的前127个字符,看起来就像真正的ASCII,所以你可以把许多ASCII文本解释为UTF-8,而不用做任何事情。 整洁的把戏。 那么它是怎样工作的? 我要在这里问一问,回答我自己的问题,因为我只是做了一些解读,我认为这可能会让别人省下一些时间。 另外也许有人可以纠正我,如果我有一些错误。
我有一个文本文件。 我被告知使它UTF8。 我怎样才能做到这一点与Vim?
我有几个问题试图将string编码为UTF-8。 我已经尝试了很多东西,包括使用string.encode('utf-8')和unicode(string) ,但我得到的错误: UnicodeDecodeError:'ascii'编解码器无法解码位置1中的字节0xef:序号不在范围内(128) 这是我的string: (。・ω・。)ノ 我不明白发生什么事了,有什么想法? 编辑:问题是,打印string,因为它不能正常显示。 此外,当我尝试将其转换为此错误: Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53) [GCC 4.5.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> s = '(\xef\xbd\xa1\xef\xbd\xa5\xcf\x89\xef\xbd\xa5\xef\xbd\xa1)\xef\xbe\x89' >>> s1 = s.decode('utf-8') >>> print s1 Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeEncodeError: 'ascii' codec can't […]
我正在尝试使用“utf8”编译指示来编写Perl脚本,并且得到了意想不到的结果。 我正在使用Mac OS X 10.5(Leopard),并使用TextMate进行编辑。 我的编辑器和操作系统的所有设置默认为以utf-8格式编写文件。 但是,当我将下面的内容input到一个文本文件中时,将它保存为“.pl”并执行它,我得到友善的“有问号的钻石”代替非ASCII字符。 #!/usr/bin/env perl -w use strict; use utf8; my $str = 'Çirçös'; print( "$str\n" ); 任何想法我做错了什么? 我希望在输出中得到“Çirçös”,但是我得到“ ir s”。
我尝试在OS X Lion中设置postgress,并发现没有正确设置LOCALE环境variables。 这是设置: LANG= LC_COLLATE="C" LC_CTYPE="C" LC_MESSAGES="C" LC_MONETARY="C" LC_NUMERIC="C" LC_TIME="C" LC_ALL= 我期望用UTF-8。 这是一个干净的OS X Lion设置,用西class牙语。 我什么都不动 我不知道如何设置为UTF-8。 在terminal设置中,检查UTF-8并将LOCALE设置为打开,尽pipe不起作用。
我有一个string,我从第三方应用程序接收,我想在我的Windows Surface上使用C#在任何语言正确显示它。 由于编码不正确,我的一段string看起来像西class牙文: Acción 而应该看起来像这样: 行动组织 根据这个问题的答案: 如何知道在C#中的string编码,我收到的编码应该已经在UTF-8,但它是在Encoding.Default(可能ANSI?)上读取。 我试图将这个string转换为真正的UTF-8,但其中一个问题是我只能看到Encoding类的一个子集(仅限于UTF8和Unicode属性),可能是因为我仅限于Windows Surface API。 我已经尝试了一些我在互联网上find的片段,但是迄今为止,没有一个片段certificate对于东方语言(即韩国)是成功的。 一个例子如下: var utf8 = Encoding.UTF8; byte[] utfBytes = utf8.GetBytes(myString); myString= utf8.GetString(utfBytes, 0, utfBytes.Length); 我也尝试将string解压缩到一个字节数组,然后使用UTF8.GetString: byte[] myByteArray = new byte[myString.Length]; for (int ix = 0; ix < myString.Length; ++ix) { char ch = myString[ix]; myByteArray[ix] = (byte) ch; } myString = Encoding.UTF8.GetString(myByteArray, 0, myString.Length); […]
我目前正在编写一个Java项目,当我编译时发出以下警告: /src/com/myco/apps/AppDBCore.java:439: warning: unmappable character for encoding UTF8 [javac] String copyright = " 2003-2008 My Company. All rights reserved."; 我不确定在date之前如何呈现这个angular色,但是它应该是一个版权符号,并且在警告中显示为一个钻石中的问号。 值得注意的是,这个字符正确地出现在输出工件中,但是这个警告是令人讨厌的,包含这个类的文件有一天可能被一个文本编辑器触及,这个文本编辑器会错误地保存编码。 我怎样才能将这个字符注入到“版权”string中,以便编译器很高兴,并且这个符号被保存在文件中而没有潜在的重新编码问题?
我有一个浏览器发送UTF-8字符到我的Python服务器,但是当我从查询string中检索它时,Python返回的编码是ASCII。 我怎样才能将纯string转换为utf-8? 注:从networking传递的string已经是UTF-8编码,我只是想让Python把它作为UTF-8而不是ASCII。
UTF-8和UTF-16的区别? 为什么我们需要这些? MessageDigest md = MessageDigest.getInstance("SHA-256"); String text = "This is some text"; md.update(text.getBytes("UTF-8")); // Change this to "UTF-16" if needed byte[] digest = md.digest();