相关疑难解决方法(0)

如何从文件开头删除ï»?

我有一个CSS文件,当我使用gedit打开它时看起来很好,但是当它被PHP读取(将所有CSS文件合并为一个)时,这个CSS前面有以下字符:

PHP删除所有空格,因此代码中间的随机会弄乱整个事物.正如我所提到的,当我在gedit中打开文件时,我实际上看不到这些字符,因此我无法轻易删除它们.

我搜索了问题,文件编码显然有问题,这是有道理的,因为我已经通过ftp和rsync将文件转移到不同的Linux/Windows服务器,并使用一系列文本编辑器.我不太了解字符编码,所以请帮助.

如果有帮助,文件将以UTF-8格式保存,gedit将不允许我以ISO-8859-15格式保存(该文档包含一个或多个无法使用指定字符编码进行编码的字符).我尝试用Windows和Linux行结尾保存它,但都没有帮助.

php byte-order-mark utf-8 character-encoding mojibake

140
推荐指数
7
解决办法
19万
查看次数

将带有BOM的UTF-8转换为UTF-8,在Python中没有BOM

这里有两个问题.我有一组文件,通常是带有BOM的UTF-8.我想将它们(理想情况下)转换为没有BOM的UTF-8.似乎codecs.StreamRecoder(stream, encode, decode, Reader, Writer, errors)会处理这个问题.但我真的没有看到任何关于使用的好例子.这是处理这个的最佳方法吗?

source files:
Tue Jan 17$ file brh-m-157.json 
brh-m-157.json: UTF-8 Unicode (with BOM) text
Run Code Online (Sandbox Code Playgroud)

此外,如果我们能够处理不同的输入编码而不明确地知道(看到ASCII和UTF-16),那将是理想的.看起来这应该都是可行的.有没有可以将任何已知的Python编码和输出作为UTF-8而无BOM的解决方案?

从下面编辑1提出的sol'n(谢谢!)

fp = open('brh-m-157.json','rw')
s = fp.read()
u = s.decode('utf-8-sig')
s = u.encode('utf-8')
print fp.encoding  
fp.write(s)
Run Code Online (Sandbox Code Playgroud)

这给了我以下错误:

IOError: [Errno 9] Bad file descriptor
Run Code Online (Sandbox Code Playgroud)

新闻快报

我在评论中被告知错误是我用模式'rw'而不是'r +'/'r + b'打开文件,所以我最终应该重新编辑我的问题并删除已解决的部分.

python byte-order-mark utf-8 utf-16

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

Python,将输出编码为UTF-8

我有一个定义,构建一个由UTF-8编码字符组成的字符串.输出文件使用'w+', "utf-8"参数打开.

但是,当我试着x.write(string)去拿UnicodeEncodeError: 'ascii' codec can't encode character u'\ufeff' in position 1: ordinal not in range(128)

我认为这是因为通常你会做`print(u'something').但我需要使用一个变量和U中的语录" _ "否定的是...

有什么建议?

编辑:这里的实际代码:

source = codecs.open("actionbreak/" + target + '.csv','r', "utf-8")
outTarget = codecs.open("actionbreak/" + newTarget, 'w+', "utf-8")
x = str(actionT(splitList[0], splitList[1]))
outTarget.write(x)
Run Code Online (Sandbox Code Playgroud)

基本上所有这一切应该是为我构建大量类似于此的字符串:

[??? Deliverables]= CASE WHEN things = 11 THEN C ELSE 0 END

python encoding utf-8 python-2.7

5
推荐指数
2
解决办法
1万
查看次数

为什么出现在我的数据中?

我从这里下载文件“ pi_million_digits.txt”:

https://github.com/ehmatthes/pcc/blob/master/chapter_10/pi_million_digits.txt

然后,我使用以下代码打开并阅读它:

filename = 'pi_million_digits.txt'

with open(filename) as file_object:
    lines = file_object.readlines()

pi_string = ''
for line in lines:
    pi_string += line.strip()

print(pi_string[:52] + "...")
print(len(pi_string))
Run Code Online (Sandbox Code Playgroud)

但是,产生的输出是正确的,除了它之前带有相同的奇怪符号:“3.141 ....”

是什么导致这些奇怪的符号?我正在剥线,所以我希望这些符号会被删除。

python byte-order-mark utf-8 character-encoding python-3.x

4
推荐指数
1
解决办法
2324
查看次数

通过 Excel 制作 CSV 会在第一个列名称前面显示“”

我通过 Excel 生成了一个 csv,在打印键名称时,我在第一个键上附加了一些奇怪的字符,如下所示:

\n\n
\n

键(['\xc3\xaf\xc2\xbb\xc2\xbfrow1', 'row2']

\n
\n\n
import csv\n\npath = 'C:\\\\Users\\\\asdf\\\\Desktop\\\\file.csv'\nwith open(path, 'r') as file:\n    reader = csv.DictReader(file)\n\n    for row in reader:\n        print(row.keys())\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是,如果我只是在 IDE 中创建 csv,一切都会正常,并且不会打印奇怪的字符。我怎样才能读取excel csv来截掉奇怪的字符?

\n

python csv excel reader

4
推荐指数
1
解决办法
3120
查看次数

读取 CSV 文件时出现奇怪的字符

我尝试在 Python 中读取 CSV 文件,但第一行中的第一个元素是这样读取的0,而奇怪的字符不在文件中,它只是一个简单的0. 这是我使用的代码:

matriceDist=[]
file=csv.reader(open("distanceComm.csv","r"),delimiter=";")
for row in file:
    matriceDist.append(row)
print (matriceDist)
Run Code Online (Sandbox Code Playgroud)

python encoding

2
推荐指数
2
解决办法
4953
查看次数