语法错误:文件“....”中以 \xe0 开头的非 UTF-8 代码,但未声明编码

问题描述 投票:0回答:1
# -*- coding: <utf-8> -*-
import re
conversiontable = { 'ॐ' : 'oṁ', 'ऀ' : 'ṁ', 'ँ' : 'ṃ', 'ं' : 'ṃ', 'ः' : 'ḥ', 'अ' : 'a', 'आ' : 'ā', 'इ' : 'i', 'ई' : 'ī', 'उ' : 'u', 'ऊ' : 'ū', 'ऋ' : 'r̥', 'ॠ' : ' r̥̄', 'ऌ' : 'l̥', 'ॡ' : ' l̥̄', 'ऍ' : 'ê', 'ऎ' : 'e', 'ए' : 'e', 'ऐ' : 'ai', 'ऑ' : 'ô', 'ऒ' : 'o', 'ओ' : 'o', 'औ' : 'au', 'ा' : 'ā', 'ि' : 'i', 'ी' : 'ī', 'ु' : 'u', 'ू' : 'ū', 'ृ' : 'r̥', 'ॄ' : ' r̥̄', 'ॢ' : 'l̥', 'ॣ' : ' l̥̄', 'ॅ' : 'ê', 'े' : 'e', 'ै' : 'ai', 'ॉ' : 'ô', 'ो' : 'o', 'ौ' : 'au', 'क़' : 'q', 'क' : 'k', 'ख़' : 'x', 'ख' : 'kh', 'ग़' : 'ġ', 'ग' : 'g', 'ॻ' : 'g', 'घ' : 'gh', 'ङ' : 'ṅ', 'च' : 'c', 'छ' : 'ch', 'ज़' : 'z', 'ज' : 'j', 'ॼ' : 'j', 'झ' : 'jh', 'ञ' : 'ñ', 'ट' : 'ṭ', 'ठ' : 'ṭh', 'ड़' : 'ṛ', 'ड' : 'ḍ', 'ॸ' : 'ḍ', 'ॾ' : 'd', 'ढ़' : 'ṛh', 'ढ' : 'ḍh', 'ण' : 'ṇ', 'त' : 't', 'थ' : 'th', 'द' : 'd', 'ध' : 'dh', 'न' : 'n', 'प' : 'p', 'फ़' : 'f', 'फ' : 'ph', 'ब' : 'b', 'ॿ' : 'b', 'भ' : 'bh', 'म' : 'm', 'य' : 'y', 'र' : 'r', 'ल' : 'l', 'ळ' : 'ḷ', 'व' : 'v', 'श' : 'ś', 'ष' : 'ṣ', 'स' : 's', 'ह' : 'h', 'ऽ' : '\'', '्' : '', '़' : '', '०' : '0', '१' : '1', '२' : '2', '३' : '3', '४' : '4', '५' : '5', '६' : '6', '७' : '7', '८' : '8', '९' : '9', 'ꣳ' : 'ṁ', '।' : '.', '॥' : '..', ' ' : ' ', }
consonants = '\u0915-\u0939\u0958-\u095F\u0978-\u097C\u097E-\u097F' 
vowelsigns = '\u093E-\u094C\u093A-\u093B\u094E-\u094F\u0955-\u0957' 
nukta = '\u093C' 
virama = '\u094D' 
devanagarichars = '\u0900-\u097F\u1CD0-\u1CFF\uA8E0-\uA8FF'

我一直在尝试使用上述映射将文本从拉丁语音译为梵文。 我正在使用 VS Code,它抛出编码错误“文件“....”中以 \xe0 开头的非 UTF-8 代码,但没有声明编码”。我尝试将 utf-8 编码行放在代码上方,但这不起作用。

谁能解释一下为什么会发生这种情况以及我应该做什么来纠正它?

python utf-8 character-encoding devanagari
1个回答
0
投票

删除第一行。

它可能会让你和 Python 感到困惑。这并不是通过写入 文件是 UTF-8 来实现的。

您应该检查文件的编码。检查 VS 是否对您的文件使用 UTF-8。在那里设置编码,然后保存文件。所以现在 python 会将文件视为 UTF-8。

如果你写第一行,Python 只会认为该文件是 UTF-8,但事实并非如此,因此会出现错误。您正在强制 Python 将文件读取为 UTF-8。

如果你删除第一行,你可能会遇到同样的错误(UTF-8是默认的,所以如果没有强烈建议其他编码,它可能仍然将其解释为UTF-8并给你同样的错误,在另一方面,它可能会尝试找到编码)。

但是如果你将 UTF-8 设置为文件的编码(在 VS 中,通常在任何代码编辑器中),那么该文件将被保存为 UTF-8。

PS:如果这不是作业,您可能需要阅读 Unicode 标准中有关 Devaganari 的章节:还有许多更特殊的情况需要注意。可能还有一个关于音译的标准(或者只是寻找一个图书馆)

© www.soinside.com 2019 - 2024. All rights reserved.