相关疑难解决方法(0)

如何检查字符串是unicode还是ascii?

我在Python中需要做些什么来确定字符串的编码方式?

python unicode encoding utf-8

257
推荐指数
6
解决办法
31万
查看次数

用单个空格替换非ASCII字符

我需要用空格替换所有非ASCII(\ x00-\x7F)字符.我很惊讶这在Python中并不容易,除非我遗漏了一些东西.以下函数只删除所有非ASCII字符:

def remove_non_ascii_1(text):

    return ''.join(i for i in text if ord(i)<128)
Run Code Online (Sandbox Code Playgroud)

并且这个用字符代码点中的字节数替换非ASCII字符和空格量(即字符被3个空格替换):

def remove_non_ascii_2(text):

    return re.sub(r'[^\x00-\x7F]',' ', text)
Run Code Online (Sandbox Code Playgroud)

如何用单个空格替换所有非ASCII字符?

无数 类似 SO 问题, 地址 的字符 替换 反对 剥离,进一步解决所有非ASCII字符不是一个特定的字符.

python unicode encoding ascii

228
推荐指数
6
解决办法
18万
查看次数

编码/解码有什么区别?

我从来不确定我理解str/unicode解码和编码之间的区别.

我知道这str().decode()是因为当你有一个字符串,你知道它有一定的字符编码,给定编码名称它将返回一个unicode字符串.

我知道unicode().encode()根据给定的编码名称将unicode字符转换为字符串.

但我不明白是什么str().encode(),unicode().decode()是为了什么.任何人都可以解释,并可能还纠正我上面遇到的任何其他错误吗?

编辑:

几个答案给出了.encode关于字符串上的内容的信息,但似乎没有人知道.decodeunicode 是做什么的.

python string unicode character-encoding python-2.x

174
推荐指数
5
解决办法
10万
查看次数

检测unicode字符串中的非ascii字符

给定一个文本文件(或unicode字符串),检测不在ascii编码之外的字符的好方法是什么?我可以很容易地迭代传递每个角色ord(),但我想知道是否有更高效,优雅或惯用的方式来做到这一点.

这里的最终目标是编译无法编码为ascii的数据中的字符列表.

如果重要,我的语料库大小约为500MB/1200文本文件.在Win7(64位)上运行(预编译的vanilla)Python 3.3.1.

python unicode python-3.x

3
推荐指数
1
解决办法
8574
查看次数

检查字符串的任何(所有)字符是否在给定范围内

我有一个包含unicode符号(cyrillic)的字符串:

myString1 = '???????'
myString2 = 'Austri?'
Run Code Online (Sandbox Code Playgroud)

我想检查字符串中的所有元素是否都是英文(ASCII).现在我正在使用循环:

for char in myString1:
    if ord(s) not in range(65,91):
         break
Run Code Online (Sandbox Code Playgroud)

因此,如果我找到第一个非英语元素,我就会打破循环.但是对于给定的示例,您可以看到字符串最后可以包含许多英文符号和unicode.通过这种方式,我将检查整个字符串.此外,如果所有的字符串都是英文的,我仍然会检查每个字符.

有没有更有效的方法来做到这一点?我正在考虑这样的事情:

if any(myString[:]) is not in range(65,91)
Run Code Online (Sandbox Code Playgroud)

python string unicode performance python-3.x

3
推荐指数
1
解决办法
3837
查看次数