我正在使用Python3.4.2并且我看到以下错误,我已经包含了编码类型utf-8并仍然看到错误。
File "C:\Python34(1)\lib\encodings\cp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 6389:
character maps to <undefined>
这是读取文件的代码。该文件很大,错误在第916355行引发
with open(filename) as infile:
lc = 0
for line in infile:
lc = lc +1
print (lc)
我文件中的行916355
和916356
如下所示,
2015 Jun 30 05:06:09.073049 igmp [7214]: : Received General v2 Query from 40.150.3.1 (Eth3/1), mrt: 10 sec
2015 Jun 30 05:06:11.429282 igmp [7214]: : Send v2 Report for 224.0.1.39 on Eth3/1
答案 0 :(得分:0)
你没有&#34;包含编码类型utf-8。&#34;如果你这样做,你的代码将如下所示:
$scope.$watchCollection('[user.company_name,user.company_number,user.first_name,user.last_name,user.middle_name,user.salutation]',function(newValue){
//set individual form inputs to pristine
if(newValue[0].length > 0 || newValue[1] > 0 ){
$scope.SignUpForm.first_name.$setPristine();
$scope.SignUpForm.last_name.$setPristine();
$scope.SignUpForm.middle_name.$setPristine();
$scope.SignUpForm.salutation.$setPristine();
}
//set company form inputs to pristine
if((newValue[2].length > 0) || (newValue[3].length > 0) || (newValue[4].length > 0) || (newValue[5].length > 0)){
$scope.SignUpForm.company_name.$setPristine();
$scope.SignUpForm.company_number.$setPristine();
}});
但这还不够。不幸的是,Windows终端无法使用完整的Unicode。它们通常可以一次处理一个代码页,但不能同时处理整个Unicode范围。
如果这仅用于调试,您可以尝试这样的事情:
with open(filename, encoding='utf8') as infile: # Put the encoding here
lc = 0
for line in infile:
lc = lc +1
print (lc)
这会将Unicode字符转换为反斜杠转义序列(print(lc.encode('ascii', errors='backslashescape').decode('ascii'))
= U + 1234),并将ASCII字符传递给未更改。
如果您真的关心此输出,则需要确定要使用的编码以及输出方式。使用UTF-8写入文件可能更容易,然后使用支持Unicode的文本编辑器打开该文件(可以告诉记事本在打开的对话框中以UTF-8打开文件)。