问题标签 [byte-order-mark]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
svn - SVN diff 命令 - 忽略 BOM
我正在使用 SVN 来提交 windows 和 linux 中的更改,但是当我想在某些情况下提交更改时,会从文件中添加/删除 BOM 字符。我希望 SVN 的差异会忽略 BOM 的这些更改,并且只显示我更改的文件。你知道会忽略 BOM 字符的 diff 命令吗?
谢谢。
java - 为什么 org.apache.xerces.parsers.SAXParser 不跳过 utf8 编码的 xml 中的 BOM?
我有一个带有 utf8 编码的 xml。而这个文件包含BOM一个开头的文件。因此,在解析过程中,我遇到了 org.xml.sax.SAXParseException: Content is not allowed in prolog。我无法从文件中删除这 3 个字节。我无法将文件加载到内存中并在此处删除它们(文件很大)。因此,出于性能原因,我正在使用 SAX 解析器,如果它们出现在“”标记之前,则只想跳过这 3 个字节。我应该为此继承 InputStreamReader 吗?
我是java新手-请告诉我正确的方法。
visual-studio-2010 - 无 BOM 的 UTF-8
我有 javascript 文件,我需要将它们保存为 UTF-8(没有 BOM),每次我在Notepad++中将它们转换为正确的格式时,当我在 Visual Studio 中打开它们时,它们就会恢复为带有 BOM 的 UTF-8。我怎样才能阻止 VS2010 这样做?
另一个问题,Visual Studio 中没有签名的 UTF-8 是否与没有 BOM 的 UTF-8 相同?
php - 字节顺序标记问题
我的 php 文件顶部的字节顺序标记有问题。就像 - 。为此,显示了一个 php 警告。我已经删除了两次文本。但它不断出现。我的文件是这样开始的 -
'header.php' 是这样的 -
我该如何解决这个问题?
encoding - 使用 PowerShell 在没有 BOM 的情况下以 UTF-8 编写文件
Out-File
似乎在使用 UTF-8 时强制使用 BOM:
如何使用 PowerShell 以 UTF-8 编写没有 BOM 的文件?
2021 年更新
自从我 10 年前写这个问题以来,PowerShell 发生了一些变化。检查下面的多个答案,他们有很多很好的信息!
php - 在 PHP 中使用 BOM 将字符串编码为 UTF-8
使用 utf8_encode 时如何强制 PHP 添加 BOM?
这是我想做的事情:
不幸的是(对我而言),结果开头不会有 BOM 标记。
php - PHP 或 Apache 是否影响 DTD:在 IE7 标准模式下呈现 XHTML 的问题
我有一个带有 DOCTYPE 下面的静态 HTML(index.html),它将触发 IE7 中的标准模式:
然后我将页面转换为三个 PHP HTML 模板:header.html.php、index.php、footer.html.php。并且 header.html.php 包含上面的确切 DOCTYPE。
但是每次我在 IE7 中声明 index.php 时,它都会打乱渲染。
我已经使用该命令javascript:alert(document.compatMode)
在 IE7 和 FF3 中进行了测试
对于静态html页面,IE7和FF3都给我CSS1Compat,是我期待的模式;但是对于 PHP 生成的页面,FF3 给我 CSS1Compat,而 IE7 给我 BackCompat。
这是我认为问题所在:
我从 IE7 下载了页面,发现 DOCTYPE 变成<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
了没有地址。
但是在ff3和chrome中下载相同的PHP生成页面,DOCTYPE是正确的<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
当我测试页面时,毫不奇怪,W3C 验证器获取的源代码的第一行是# <!-- A customized tag to distinguish different pages --> # <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
W3C 验证指示空的第一行。
我已经删除了所有静态 PHP 文件和 CSS 文件的 BOM,但我仍然遇到问题。
这是 Apache 还是 PHP 的问题?有人有解决这个问题的线索吗?
谢谢。
java - 如何在不使用 BOM 并以非 ASCII 字符开头的情况下识别文件的不同编码?
在尝试识别没有 BOM 的文件的编码时遇到问题,特别是当文件以非 ascii 字符开头时。
我发现了以下两个关于如何识别文件编码的主题,
目前,我创建了一个类来识别文件的不同编码(例如 UTF-8、UTF-16、UTF-32、UTF-16 no BOM 等),如下所示,
}
上面的代码在所有情况下都可以正常工作,除非文件没有 BOM 并且以非 ascii 字符开头。由于在这种情况下,检查文件是否仍然是 UTF-16 而没有 BOM 的逻辑将无法正常工作,编码将默认设置为 UTF-8。
如果有一种方法可以检查没有 BOM 的文件的编码并以非 ascii 字符开头,尤其是对于 UTF-16 NO BOM 文件?
谢谢,任何想法将不胜感激。
.net - WebClient.UploadString 方法不发出 BOM。为什么?
以下代码的目的是通过 HTTP 发布以字节顺序标记 (BOM) 开头的数据。
但是,根据提琴手的说法,请求正文的开头没有 BOM。即使我使用UnicodeEncoding
而不是UTF8Encoding
.
所以问题是,我做错了什么?
注意:我知道我可以通过WebClient.UploadData
结合使用Encoding.GetPreamble
方法来绕过这个问题,但是我想知道为什么UploadString
不能按预期工作。
android - 某些阿拉伯语文本显示不正确,而其他阿拉伯语文本正常显示?
我正在开发一个包含阿拉伯语文本的应用程序。我的手机支持阿拉伯语,因此文本可以正确显示。奇怪的问题是:如果我从 a.txt 文件中复制我想要的阿拉伯语文本并将其放入EditText,EditText 显示奇怪的字符,但如果我手动编写相同的文本(不是复制粘贴),文本会正常显示!
这是一张显示我的意思的图片,第一个 EditText 是我手动编写的文本,第二个是我从 .txt 文件中复制粘贴的文本。
这是应用程序的代码:
xml文件:
我希望你明白我的意思,因为解释这个奇怪(愚蠢)的问题并不容易。谢谢。