支持Unicode

我正在尝试成为" Unicode-ware" ... *叹 *. 那是什么引用 - 'a ASCII的母语者永远不会学会像 本国的'. 麻烦是我认为我是拉丁-1的母语者 没有意识到. 我对Unicode的主要问题是如何处理 未指定编码的任意文本. 尽我所能 知道这种情况的技术术语是"错误的". 例如. 我 有一个CGI留言簿脚本. 是知道什么编码的唯一方法 用户正在打字,问他们? 无论如何 - configobj从纯文本文件读取配置文件. 在那儿 用于在文本文件中指定编码的标准? 我知道 Python脚本有一种方法 - 我应该使用它吗? 另外 - 假设我知道编码或让程序员指定的是 以下足以读取文件: def afunction(setoflines,encoding ='ascii'): 对于setoflines中的行: 如果编码: line = line.decode(编码) 问候, fuzzy http://www.voidspace.org.uk/atlantib...thonutils.html(_@_ _) >我对Unicode的主要问题是如何处理 是的,应该是 - 但是为什么要呢? 这是不必要的,因为它的状况会 始终是真实的 - 而您_want_是这样的,因为 无论使用什么编码,都应始终是Unicode对象. - - 问候, diez B. roggisch

# 回答1

fuxeydeby@gmail.com(Michael Foord)写了... 我发现此链接https://bugzilla.mozilla.org/show_bug.cgi?id=18643#c12 有用. 吉姆
# 回答2

在文章<54 **************************************************************************************************************************@smcvt.edu (Jim Hefferon)写道:我发现此链接https://bugzilla.mozilla.org/show_bug.cgi?id=18643#c12有用. 同样,我找到了此链接http://www.w3schools.com/tags/tag_form.asp 有用. 请参阅"接受"归纳. 只是
# 回答3

在2004年10月27日星期三12:56:32 +0200," Diez B. Roggisch" 写道:不知道configobj是什么 - 它是您拥有的配置Parser 是的,应该是 - 但是为什么要呢? 这是不必要的,因为它的条件通道是正确的 - 而您_want_是这样的. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^因为 afunction(线,无) 似乎是一个可行的电话;-) 无论使用什么编码,都应始终是Unicode对象. 问候, Bengt Richter
# 回答4

Michael Foord 写道: ... 此片段发布是一个复杂的"无op,但引起了错误 如果是整个函数,则无效编码行". 假设所谓的setoflines不是集,而是列表(订单 通常在这种情况下很重要),您可能想要: def afunction(setoflines,encoding ='ascii'): 对于我,枚举(setoflines)中的行: setoflines [i] = line.decode(编码) 删除"如果"与您已经得到的建议相同; 如果您想能够明确传递编码=''以避免 解码(函数的全部目的),只需插入FIRS线 如果不编码:返回 而不是 在循环中重复测试. 但是关键更改是 使用枚举以获取索引和值,然后分配到 索引以更新" SETOFLINES". 分配给 局部变量"线"(再次假设您没有删除代码 提到这一点)是不好的. 一个好的替代方案可能是 setOflines [:] = [line.decode(编码)在setoflines中的行] 再次假设您希望更改会发生. Alex
# 回答5

fugedebeydeyde@gmail.com(Michael Foord)在消息新闻中写道:<6f ************************************************************************************************************************************************************************************************************************************************** ****@posting.google. com> ... 对于大多数编码,这将正常工作. 但是有一些编码, 例如,UTF-16不适合使用它. UTF-16失败了两个 原因:两个字节字符干扰线条缓冲, 并且UTF-16字符串必须先于两字节代码,以指示 endianness,这将在文件的开头,但不是 每行. 幸运的是,大多数文本文件不在UTF-16中. 我提到了 您知道,尽管在大多数情况下效果起作用,但不是 普遍的. 我相信这是StreamReader和StreamWriter的目的 编解码模块中的课程处理此类情况. - - 卡尔银行
# 回答6

> 好的,我承认我没有想到_愚蠢的可能性:) 尽管如此:他想要Unicode对象,因此他应该确保自己得到 他们.... - - 问候, Diez B. Roggisch
# 回答7

aldydeby@yahoo.com(Alex Martelli)在消息新闻中写道:<1gmd10n.1xt7l7q6ahyacn%al *****@yahoo.com> ... :-) 这不是整个功能……很高兴您将我归因于我 一些智慧;-) 假设所谓的setOflines不是集合,而是列表(在这种情况下正常订单很重要),您可能想要:def afunction(setoflines,encoding ='ascii'):对于我,i,inumerate(setoflines)行(setoflines):setoflines:setoflines:setoflines: [i] = line.decode(编码)删除"如果"与您已经提供的建议相同; 如果您希望能够明确传递编码=''以避免解码(函数的全部目的),则只需插入FIR线行,如果不编码:返回而不是在循环中重复测试. 但是,关键的更改是使用枚举以获取索引和值,并将其分配到索引中,以便更新" SETOFLINES". 分配给本地变量"行"(再次假设您没有剪切代码,请提及这一点)是不好的. 其余功能(我没有显示)实际上将处理 一条线…… 问候, fuzzy http://www.voidspace.org.uk/atlantib...thonutils.html可以选择一个很好的替代方案[:] = [line.decode(sendoflines in setOflines in in setOflines)] 就场发生. Alex
# 回答8

>不幸的是,HTTP标准似乎缺乏形成数据的规范 第四次,这完全是胡说八道:) 将内容类型的HTTP标头发送给客户端,并带有值 "文字/html; char set = utf-8".您可能必须将其两者都作为http发送 标题和元HTTP-Equiv-HTML标签,以使其与所有标签一起使用 浏览器. 通常(如果真的在标准中,我不知道 客户必须以这种方式行事),客户将在 与您一起发送页面的页面相同的编码. 无论如何,客户 回复会很大程度设置类似的标签,但我不知道, 而且不在乎只是期望所有专业的编码作品 浏览器(Mozilla,即,歌剧).
# 回答9

egil m?ller写道:fourthale,这是完全胡说八道:)将内容类型的http标头发送给客户端,并带有" text/html; charset; charset = utf-8". 您可能必须将其作为HTTP标头和元HTTP-Equiv-HTML标签发送,以使其与所有浏览器一起使用. 通常(我不会知道客户必须以这种方式行事的标准,)客户将以同一编码为您发送页面时的编码. 无论如何,客户会在回复时设置类似的标签,但我不知道,并且不在乎只是期望所有主要浏览器(Mozilla,IE,Opera)都有相同的编码作品. 您声称我的陈述是胡说八道,然后解释 - 交付 某个编码中的页面完全意味着它包含charset 标题,除非您使用默认值ISO-8859-1,否则需要: 然后您指出的是,期望正确编码通常有效, 但是仅仅是因为到期,这并不是因为它明显地表现出来 方式 - 现在与说大多数浏览器都会使用的情况有所不同 那是为了回复吗? 我没问题纠正了蜜蜂,或者澄清了我的陈述 - 但是我 不要以为他们通常有资格成为废话,并且不愿意 被指控说出来. - - 问候, Diez B. Roggisch

标签: python

添加新评论