首页 > 解决方案 > 使用非 ascii 字符将重音字符替换为非重音字符的解决方法

问题描述

我想使用另一种方式将带有重音的字符更改为非重音。例如:将“é”更改为“e” ...等

我必须留在 python 2.7

我使用了一个相当特殊的解释器,它在我的代码中不使用非 ascii 字符。显示以下错误:“代码包含非 ascii 字符”

我怎么能解决这个问题?

这是我的代码:

import re

chaine = '/lâllôlélûl/fdfd58'
accent = ['é', 'è', 'ê', 'à', 'ù', 'û', 'ç', 'ô', 'î', 'ï', 'â']
no_accent = ['e', 'e', 'e', 'a', 'u', 'u', 'c', 'o', 'i', 'i', 'a']



for i in xrange(len(accent)):
    chaine = chaine.replace(accent[i], no_accent[i])

标签: python-2.7non-ascii-characters

解决方案


根据源代码编码

默认情况下,Python 源文件被视为以 ASCII 编码。要声明默认编码以外的编码,应在文件的第一行添加一个特殊的注释行。语法如下:

# -*- coding: cp1252 -*-

另一种方式

# -*- coding: cp1252 -*-
import unicodedata

chaine = 'çàlaïù'

str_input = unicodedata.normalize('NFKD', unicode(chaine, 'utf-8'))
print str_input.encode('ASCII', 'ignore')
print chaine

在此处输入图像描述


推荐阅读