- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在编码方面遇到了问题。我正在使用版本
Python 2.7.2+ (default, Oct 4 2011, 20:03:08) [GCC 4.6.1] on linux2
我有带有 é à 等重音符号的字符。我的脚本使用 utf-8 编码
#!/usr/bin/python
# -*- coding: utf-8 -*-
用户可以使用 raw_input() 和 .
键入字符串def rlinput(prompt, prefill=''):
readline.set_startup_hook(lambda: readline.insert_text( prefill))
try:
return raw_input(prompt)
finally:
readline.set_startup_hook()
在主循环中调用“伪”shell
while to_continue :
to_continue, feedback = action( unicode(rlinput(u'todo > '),'utf-8') )
os.system('clear')
print T, u"\n" + feedback
数据以 pickle 的形式存储在文件中。
我设法让应用程序正常运行,但最终得到了一些愚蠢的东西,比如
核心文件:
class Task()
...
def __str__(self):
r = (u"OK" if self._done else u"A faire").ljust(8) + self.getDesc()
return r.encode('utf-8')
在 shell 文件中也是如此:
feedback = jaune + str(t).decode('utf-8') + vert + u" supprimée"
这就是我意识到我在编码/解码方面可能完全错误的地方。所以我尝试直接在 rlinput 中解码但失败了。我在 stackoverflow 中阅读了一些帖子,重新阅读了 http://docs.python.org/library/codecs.html等待我的 python 书,我迷路了 :/
我猜有很多错误的代码,但我这里的问题只与编码问题有关。你可以在这里找到代码:(大多数评论都是法语的,抱歉,这是供个人使用的,我是初学者,你还需要 yapsy - http://yapsy.sourceforge.net/)(然后配置路径,然后在 py_todo 中:./todo_shell.py ) : http://bit.ly/rzp9Jm
最佳答案
在所有 Unix 系统上,标准输入和输出都是基于字节的。这就是为什么您必须调用 unicode
函数来为它们获取字符串的原因。解码错误表明传入的字节不是有效的 UTF-8。
问题基本上是UTF-8编码的假设,不能保证。通过将 unicode
调用中的编码更改为 'ISO-8859-1'
或将终端仿真器的字符编码更改为 UTF-8 来确认这一点。 (Putty 在“翻译”菜单中支持这一点。)
如果上述实验证实了这一点,您的挑战是支持用户的语言环境并推断出正确的编码,或者可能让用户在命令行参数或配置中声明编码。 $LANG
环境变量是您在没有显式声明的情况下可以做的最好的事情,我发现它不能很好地指示所需的字符编码。
关于python - 丢失编码( shell 和重音),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7992648/
我正在寻找一种方法来支持不区分大小写 + 重音不区分搜索的良好性能。到目前为止,我们在使用 MSSql 服务器时没有遇到任何问题,在 Oracle 上我们必须使用 OracleText,而现在我们在
这个问题已经有答案了: Trouble with UTF-8 characters; what I see is not what I stored (5 个回答) 已关闭 5 年前。 我刚刚将一个我
我正在寻找一种在 Linux 中使用反引号 (`)/波形符 (~) 键和其他一些键创建键盘快捷键的方法。在理想情况下: 按下波形符没有任何作用 按下波形符的同时按另一个键会触发(可自定义的)快捷方式
我有一个由术语组成的数组,其中一些包含重音字符。我像这样做一个 preg grep $data= array('Napoléon','Café'); $result = preg_grep('~' .
我使用 TextBox 在 DataGridView 中进行过滤 image .这是完美的工作。表格的单元格包含 1250 个拉丁字符。我想搜索忽略单元格中单词的重音。例子。如果是文本框 "knjaz
我在 Vim 中遇到一个奇怪的映射问题。我使用的是 Azerty 键盘。 在我的 .vimrc 中,我有以下命令可以在段落之间快速移动。 nnoremap _ { vnoremap _ { nnore
我尝试读取一个utf8编码的vcf文件,结果是: { "name": "=4A=61=76=69=65=72=20=4C=75=6A=C3=A1=6E", "tel":
我的数据库中有两个表,info 和 comment,它们的结构如下: info (id(int(10)), name(varchar(80)), ...19 other columns.., phon
我使用 QtWebkit 制作了一个应用程序。在同一个 html 页面中,在 Windows 上使用重音符号(西类牙语)时可以正常工作,但在 Linux (Ubuntu) 上则不起作用。 我不明白为什
我有(例如)两个字符串: $a = "joao"; $b = "joão"; if ( strtoupper($a) == strtoupper($b)) { echo $b; } 我希望它是
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: invalid multibyte char (US-ASCII) with Rails and Ruby
我重写 URL 以包含用户生成的旅游博客的标题。 我这样做是为了 URL 的可读性和 SEO 目的。 http://www.example.com/gallery/280-Gorges_du_Tod
我最近安装了新的 Windows 10 build 14393,我想使用新的 linux 子系统。所以我决定学习 ncurses,但我找不到如何从 getch 中获取带有重音符的字符的 UTF-8 代
我是一名优秀的程序员,十分优秀!