我正在尝试创build一个PyQt4 QTableWidget csv格式的文本文件。 我想用UTF-8编码来编写文本,因为它包含特殊字符。 我使用以下代码: import codecs … myfile = codecs.open(filename, 'w','utf-8') … f = result.table.item(i,c).text() myfile.write(f+";") 它的工作,直到单元格包含一个特殊的字符。 我也试过 myfile = open(filename, 'w') … f = unicode(result.table.item(i,c).text(), "utf-8") 但是当特殊字符出现时也会停止。 我不知道我在做什么错。
好吧,所以我终于在15年的Linux后为自己做了一台MacBook Air。 而在我得到它之前,我最担心的是UTF-8的支持,因为无论我从Windows或Mac客户端发送给我的文件是否总是与编码有关,而在Ubuntu上,我可以确保所有的输出,不pipe是什么程序产生完美的utf-8编码数据。 现在在我的第二天(今天)OS X Im沮丧地撕毁我的头发。 为什么? 当我打开Nano并在其中键入一些瑞典语字符时,它会在行尾输出空白字符(我猜是每个字符中的另一个字节) 当我打开Python并尝试使用瑞典语字符时,它根本不输出任何内容 当我通过SSH连接到Ubuntu服务器时,我无法在bash中键入åäö,它在VIM中仍然工作(仍然通过SSH)。 而在纳米退格不起作用,但如果在terminal首选项中勾选“删除发送Ctrl + H”,退格开始在纳米工作,但停止在VIM工作。 我已经试过在terminal首选项中取消选中所有其他编码,然后UTF-8,但似乎不工作。 我敢肯定,每个非美国人都必须有同样的问题,所以我可以修复它们吗? 我只想要完整的UTF-8支持…:'(
给定一些代表某些未知编码(通常是UTF-8或ISO-8859-1,但不一定如此)的文本的字节数组,最好的方法是获得最可能使用的编码(在Java中)的猜测? 值得注意: 没有额外的元数据可用。 字节数组实际上是唯一可用的input。 检测algorithm显然不是100%正确的。 如果algorithm在80%以上的情况下是正确的,那就足够了。
我想改变这个句子: Etçasera samoitié。 至 : Et ca sera sa moitie。 有没有一种简单的方法来做到这一点在Java中,就像我在Objective-C中做的那样? NSString *str = @"Et ça sera sa moitié."; NSData *data = [str dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; NSString *newStr = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
以下,直接复制并粘贴到R工作正常: > character_test <- function() print("R同时也被称为GNU S是一个强烈的function性语言和环境,探索统计数据集,使许多从自定义数据graphics显示…") > character_test() [1] "R同时也被称为GNU S是一个强烈的function性语言和环境,探索统计数据集,使许多从自定义数据graphics显示…" 但是,如果我创build了一个名为character_test.R的文件,其中包含EXACT SAME代码, 请将其保存为UTF-8编码 (以保留特殊的中文字符),然后当我在R中源代码时,出现以下错误: > source(file="C:\\Users\\Tony\\Desktop\\character_test.R", encoding = "UTF-8") Error in source(file = "C:\\Users\\Tony\\Desktop\\character_test.R", encoding = "utf-8") : C:\Users\Tony\Desktop\character_test.R:3:0: unexpected end of input 1: character.test <- function() print("R 2: ^ In addition: Warning message: In source(file = "C:\\Users\\Tony\\Desktop\\character_test.R", encoding = "UTF-8") : invalid […]
我正在使用Javascript window.atob()函数来解码base64编码的string(特别是来自GitHub API的base64编码的内容)。 问题是我得到了ASCII编码的字符(像?而不是™ )。 我怎样才能正确处理传入的base64编码stream,以便解码为utf-8?
我在我的Rails 3应用程序中有一个简单的search表单: <%= form_tag search_path, :method => "get" do %> <%= text_field_tag :q, params[:q] %> <%= submit_tag "search", :name => nil %> <% end %> 当用户点击提交button时,他们被带到URL http://myapp.com/search?utf8=%E2%9C%93&q=foobar (其中%E2%9C%93被显示为复选标记)。 我没有做任何与utf8参数,所以我想通过完全删除它的URL保持清洁。 也就是说,我希望用户转到URL http://myapp.com/search?q=foobar 。 我如何做到这一点?
所以matz决定在Ruby 1.9.1中保持上/[AZ]/i downcase为/[AZ]/i 。 ActiveSupport::Multibyte在Ruby 1.8.x中通过String#mb_chars已经有了很好的i18n情况。 但是,在Ruby 1.9.1下试用时,它似乎不起作用。 下面是我写的一个简单的testing脚本,以及我得到的输出: $ cat test.rb # encoding: UTF-8 puts("@ #{RUBY_VERSION} " + (__ENCODING__ rescue $KCODE).to_s) sd, su = "Iñtërnâtiônàlizætiøn", "IÑTËRNÂTIÔNÀLIZÆTIØN" def ps(u, d, k); puts "%-30s: %24s / %-24s" % [k, u, d] end ps sd.upcase, su.downcase, "Plain ruby" require 'rubygems'; require 'active_support' ps sd.upcase, su.downcase, "With active_support" […]
我有一些UTF-8的问题。 我的客户端(以GWT实现)向我的servlet发出一个请求,在URL中有一些参数,如下所示: http://localhost:8080/servlet?param=value 当在servlet中检索URL时,我有一些UTF-8字符的问题。 我使用这个代码: protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); String reqUrl = request.getRequestURL().toString(); String queryString = request.getQueryString(); System.out.println("Request: "+reqUrl + "?" + queryString); … 所以,如果我打电话给这个url: http://localhost:8080/servlet?param=così 结果是这样的: Request: http://localhost:8080/servlet?param=cos%C3%AC 我能做些什么来正确设置字符编码?
在VC ++ 2003中,我可以将源文件保存为UTF-8,并且所有string均按原样使用。 换句话说,下面的代码将原样打印到控制台。 如果源文件保存为UTF-8,那么输出将是UTF-8。 printf("Chinese (Traditional)"); printf("中国語 (繁体)"); printf("중국어 (번체)"); printf("Chinês (Tradicional)"); 我用UTF-8 BOM保存了UTF-8格式的文件。 但是使用VC2008编译的结果是: warning C4566: character represented by universal-character-name '\uC911' cannot be represented in the current code page (932) warning C4566: character represented by universal-character-name '\uAD6D' cannot be represented in the current code page (932) etc. 导致这些警告的字符已损坏。 符合语言环境(在这种情况下,932 =日语)的转换为语言环境编码,即Shift-JIS。 我找不到一个方法让VC ++ 2008为我编译这个。 […]