Tag: unicode

Python DictWriter编写UTF-8编码的CSV文件

我有一个包含unicodestring的字典列表。 csv.DictWriter可以将一个字典列表写入一个CSV文件。 我希望CSV文件以UTF8编码。 csv模块无法处理将unicodestring转换为UTF8。 csv模块文档有一个将所有内容转换为UTF8的例子: : def utf_8_encoder(unicode_csv_data): for line in unicode_csv_data: yield line.encode('utf-8') 它也有一个class UnicodeWriter: 但是…我如何让DictWriter与这些工作? 难道他们不得不在自己的中间注入自己的词汇,以便在将它们写入文件之前捕获反汇编的字典并对其进行编码? 我不明白。

我的PHP应用程序正确支持UTF-8吗?

我想确保我所知道的关于UTF-8的所有信息都是正确的。 我一直在尝试使用UTF-8,但是我一直在越来越多的bug和其他奇怪的事情上磕磕绊绊,这使得几乎不可能拥有100%的UTF-8站点。 我似乎错过了一个地方。 也许这里有人可以纠正我的名单或确定它,所以我不会错过任何重要的东西。 数据库 每个网站都必须在那里存储数据。 不pipe你的PHP设置是什么,你都必须configuration数据库。 如果你不能访问configuration文件,那么一旦连接,一定要确保“ SET NAMES'utf8' ”。 另外,请确保在所有表上使用utf8_ unicode_ ci 。 这假设MySQL为一个数据库,你将不得不改变其他人。 正则expression式 我做了很多正则expression式比你的普通searchreplace更复杂 。 我必须记住使用“/ u”修饰符,以便PCRE不会破坏我的string 。 然而,即使如此, 显然还是有问题的 。 string函数 所有的默认string函数(strlen(),strpos()等)都应该用看字符而不是字节的多字节string函数replace。 头文件你应该确保你的服务器为浏览器返回了正确的头文件,以便知道你正在尝试使用什么样的charset(就像你必须告诉MySQL一样)。 header('Content-Type:text / html; charset = utf-8'); 将正确的<meta>标签放在页头中也是一个好主意。 虽然实际的标题将会覆盖这个,如果他们不同。 <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> 问题 当页面加载时,我是否需要将从用户代理(HTML表单的&URI)接收的所有内容转换为UTF-8,或者如果我可以保留原有的string/值,仍然可以通过这些函数运行而不会出现问题? 如果我确实需要将所有内容都转换为UTF-8,那么我应该采取哪些步骤? mb_detect_encoding似乎是为此而构build的,但是我一直在看到人们抱怨说,它并不总是工作。 mb_check_encoding也似乎有一个问题,从一个畸形的人告诉一个良好的UTF-8string。 PHP根据所使用的编码(像文件types)将内存中的string不同地存储在内存中,还是像常规的一些字符一样被存储为不同的字符(如&amp; vs&in HTML)。 chazomaticus回答这个问题: 在PHP中(至多PHP5),string只是字节序列。 没有暗示或明确的字符集与他们相关联; 这是程序员必须跟踪的东西。 如果一个非UTF-8string给一个mb_ *函数会导致一个问题? 如果一个UTFstring编码不正确会出问题(像正则expression式中的parsing错误?),还是会标记一个实体为坏(html)? 有没有机会,不正确编码的string将导致函数返回FALSE,因为string是坏的? […]

如何用unicode文件名打开std :: fstream(ofstream或ifstream)?

你不会想象使用Windows应用程序的C ++标准库打开一个文件是非常棘手的…但似乎是这样。 在这里Unicode是指UTF-8,但我可以转换为UTF-16或任何其他的,重点是从一个Unicode文件名获得一个ofstream实例。 在我开始自己的解决scheme之前,这里有一个首选路线吗? 特别是一个跨平台的?

grepping二进制文件和UTF16

标准的grep / pcregrep等可以方便地用于ASCII或UTF8数据的二进制文件 – 是否有一个简单的方法,使他们也尝试UTF16(最好同时,而是会做)? 我试图得到的数据是所有的ASCII无论如何(库中的引用等),它只是不会被发现,因为有时有两个字符之间有00,有时没有。 我看不出有什么方法可以在语义上完成它,但是这些00应该做的伎俩,除非我不能轻易地在命令行上使用它们。

如何在Python中取消一个urlencoded unicodestring?

我有一个像“Tanım”这样的编码为“Tan%u0131m”的unicodestring。 我怎样才能将这个编码的string转换回原来的Unicode。 显然urllib.unquote不支持unicode。

我应该在密码中支持Unicode吗?

我想让我的用户使用Unicode作为他们的密码。 不过,我看到很多网站不支持(例如Gmail,Hotmail)。 所以我想知道是否有一些我可以忽略的技术或可用性问题。 我想如果有什么必须是一个可用性问题,因为默认情况下,.NET接受Unicode,如果Hotmail – 呃,新的Live邮件 – build立在这个基础上,我不明白为什么他们会限制它。 有没有人遇到类似的问题?

Matplotlib中的非ASCII字符

我有一个问题,在Matplotlib中显示非ASCII字符,这些字符呈现为小框而不是一个适当的字体,它看起来像(我用红色的油漆填充这些框高亮他们): 我如何解决它? 一个相关的问题是Matplotlib中的重音字符 。

JSON和转义字符

我有一个string被序列化为JavaScript中的JSON,然后反序列化到Java。 它看起来像是如果string包含度符号,那么我得到一个问题。 我可以用一些帮助来找出责怪谁: 是Spidermonkey 1.8的实现吗? (这有一个JSON实现内置) 它是谷歌gson ? 难道我没有正确地做某事吗? 这里是在JSDB中发生的事情: js>s='15\u00f8C' 15°C js>JSON.stringify(s) "15°C" 我会期望"15\u00f8C' ,这导致我相信,Spidermonkey的JSON实现不是做正确的事情…除了JSON主页的语法描述 (是规格?)说,一个字符可以 任何-Unicode-character-除了 – “ – 或 – \ – 或 – 控制字符” 所以也许它会按照原样传递string,而不会将其编码为\ u00f8 …在这种情况下,我会认为问题出在gson库上。 谁能帮忙? 我想我的解决方法是使用不同的JSON库,或调用JSON.stringify()后自己手动转义string – 但如果这是一个错误,那么我想提交一个错误报告。

如何将unicodestring写入文件?

我正在使用Python 2.6.5我想写一些日文字符到一个文件。 我得到这个错误,我不知道如何改变编码。 Python 2.6.5 (r265:79063, Jun 12 2010, 17:07:01) [GCC 4.3.4 20090804 (release) 1] on cygwin >>> s = u'\u5E73\u621015' >>> with open("yop", "wb") as f: … f.write( s + "\n" ); … Traceback (most recent call last): File "<stdin>", line 2, in <module> UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal […]

IIS是否执行非法字符replace? 如果是的话,如何阻止它?

上下文:在IIS中运行的ASP.NET MVC,带有一个UTF-8%编码的URL。 使用标准项目模板和HomeController的testing操作,如下所示: public ActionResult Test(string id) { return Content(id, "text/plain"); } 对于大多数%编码的UTF-8路由来说,这是正常的,比如: http://mydevserver/Home/Test/%e4%ba%ac%e9%83%bd%e5%bc%81 预期成果京都弁 但是使用路线: http://mydevserver/Home/Test/%ee%93%bb url没有被正确接收。 除此之外: %ee%93%bb是%编码的代码点0xE4FB; 基本多语言平面,私人使用区域; 但最终 – 一个有效的unicode代码点; 你可以手动validation,或通过: string value = ((char) 0xE4FB).ToString(); string encoded = HttpUtility.UrlEncode(value); // %ee%93%bb 现在,接下来发生的事情取决于networking服务器。 在Visual Studio开发服务器(又名cassini)上,接收到正确的id – 长度为1的string,其中包含代码点0xE4FB。 但是,如果我在IIS或IIS Express中执行此操作,则会得到一个不同的id ,特别是"î“»" ,代码点:0xEE,0x201C,0xBB。 你会立刻认出第一个和最后一个是我们百分比编码的string的开始和结束……所以中间发生了什么? 好: 代码点0x93是“ ( 源 ) 代码点0x201c是“ ( 源 ) […]