Questions tagged «byte-order-mark»

字节顺序标记(BOM)是Unicode字符,用于表示文本文件或流中字节的顺序。由于BOM是U + FEFF,因此可以清楚地知道高位字节是第一个(流以FE.FF开始)还是第二个(流以FF.FE开始)。



4
用Python写入UTF-8文件
我真的很困惑codecs.open function。当我做: file = codecs.open("temp", "w", "utf-8") file.write(codecs.BOM_UTF8) file.close() 它给我错误 UnicodeDecodeError:'ascii'编解码器无法解码位置0的字节0xef:序数不在范围内(128) 如果我做: file = open("temp", "w") file.write(codecs.BOM_UTF8) file.close() 它工作正常。 问题是为什么第一种方法会失败?以及如何插入宝? 如果第二种方法是正确的方法,那么使用的重点是codecs.open(filename, "w", "utf-8")什么?

30
如何在PHP中输出Excel可以正确读取的UTF-8 CSV?
我有一个非常简单的东西,它只能以CSV格式输出一些内容,但必须是UTF-8。我在TextEdit或TextMate或Dreamweaver中打开了此文件,它正确显示了UTF-8字符,但是如果在Excel中打开它,则是在做这种愚蠢的事情。这是我文档开头的内容: header("content-type:application/csv;charset=UTF-8"); header("Content-Disposition:attachment;filename=\"CHS.csv\""); 除了Excel(Mac,2008)不想正确导入之外,这一切似乎都具有预期的效果。Excel中没有为我提供“以UTF-8格式打开”或其他任何选项的选项,所以…我有点生气。 尽管很多人都遇到相同的问题,但我似乎在任何地方都找不到解决此问题的明确方法。我最常看到的是包含BOM,但我无法确切地知道如何做到这一点。正如您在上面看到的那样,我只是在echo读取这些数据,没有写入任何文件。如果需要的话,我可以这样做,我只是没有,因为在这一点上似乎并不需要。有什么帮助吗? 更新:我尝试回显BOM表,因为echo pack("CCC", 0xef, 0xbb, 0xbf);它是从试图检测BOM的站点提取的。但是,Excel在导入时只是将这三个字符追加到第一个单元格中,并且仍然弄乱了特殊字符。

10
没有BOM的UTF-8
我有一些需要将它们保存为UTF-8(不包含BOM)的javascript文件,每次我在Notepad ++中将它们转换为正确的格式时,当我在Visual Studio中打开它们时,它们都将恢复为带有BOM的UTF-8。如何阻止VS2010这样做? 另一个问题,在Visual Studio中没有签名的UTF-8是否与没有BOM的UTF-8相同?

22
如何从文件开头删除
我有一个CSS文件,当我使用gedit打开它时看起来不错,但是当PHP读取它(将所有CSS文件合并为一个文件)时,此CSS前面有以下字符: PHP删除了所有空格,因此代码中间的一个随机“ 正如我提到的,当我在gedit中打开文件时,我实际上看不到这些字符,因此我无法轻松地删除它们。 我用谷歌搜索了这个问题,文件编码显然有问题,这是有道理的,因为我一直在通过ftp和rsync用一系列文本编辑器将文件转移到不同的Linux / Windows服务器上。我对字符编码的了解并不多,所以可以帮助您。 如果有帮助,文件将以UTF-8格式保存,而gedit不允许我将其保存为ISO-8859-15格式(文档包含一个或多个无法使用指定字符编码进行编码的字符)。我尝试使用Windows和Linux行尾保存它,但是都没有帮助。

9
写没有字节顺序标记(BOM)的文本文件吗?
我正在尝试使用带有UTF8编码的VB.Net创建文本文件,而没有BOM。谁能帮我,怎么做? 我可以使用UTF8编码写入文件,但是如何从其中删除字节顺序标记? edit1:我已经尝试过这样的代码; Dim utf8 As New UTF8Encoding() Dim utf8EmitBOM As New UTF8Encoding(True) Dim strW As New StreamWriter("c:\temp\bom\1.html", True, utf8EmitBOM) strW.Write(utf8EmitBOM.GetPreamble()) strW.WriteLine("hi there") strW.Close() Dim strw2 As New StreamWriter("c:\temp\bom\2.html", True, utf8) strw2.Write(utf8.GetPreamble()) strw2.WriteLine("hi there") strw2.Close() 1.html仅使用UTF8编码创建,而2.html使用ANSI编码格式创建。 简化方法-http: //whatilearnttuday.blogspot.com/2011/10/write-text-files-without-byte-order.html

8
字节顺序标记破坏了Java中的文件读取
我正在尝试使用Java读取CSV文件。有些文件的开头可能有字节顺序标记,但不是全部。如果存在,字节顺序将与第一行的其余部分一起读取,从而导致字符串比较出现问题。 是否存在一种跳过字节顺序标记的简单方法? 谢谢!



6
在Python中将没有BOM的UTF-8转换为带有BOM的UTF-8
这里有两个问题。我有一组文件,这些文件通常是带有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 同样,如果我们能够处理清楚知道的不同输入编码(看到的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) 这给了我以下错误: IOError: [Errno 9] Bad file descriptor 新闻快讯 有人在评论中告诉我,错误是我以'rw'模式而不是'r +'/'r + b'模式打开文件,因此我最终应重新编辑问题并删除已解决的部分。

8
如何检测文本文件的字符编码?
我尝试检测文件中使用了哪种字符编码。 我尝试使用此代码来获取标准编码 public static Encoding GetFileEncoding(string srcFile) { // *** Use Default of Encoding.Default (Ansi CodePage) Encoding enc = Encoding.Default; // *** Detect byte order mark if any - otherwise assume default byte[] buffer = new byte[5]; FileStream file = new FileStream(srcFile, FileMode.Open); file.Read(buffer, 0, 5); file.Close(); if (buffer[0] == …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.