`
tq02ksu
  • 浏览: 51788 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

谈 utf8 文本中的BOM

 
阅读更多
众所周知, Linux 下默认的字符集是utf8, 如果要把这个文件发给用户看, 一般要用iconv命令转码, 但是笔者最近发现如果我装的是英文操作系统, 那看到的可不是一般的蛋疼, 全成乱码了, utf8 是因统一全世界各国编码而生的, 但是在windows 系统中却起不到作用, 其原因是windows中看到 BOM 才会认为这个文本文件是utf8编码的, 那问题就是如何在linux中输出bom呢? 就是三个不可见的字符 EF BB BF, 好, 下面讨论一下这三个字符.

首先, 可能有人会先生成一个 只有这三个字符的空文件, 然后在需要的时候文件连接一下, 这个确实能解决问题, 在项目中使用也没有风险, 但是这样就使程序显得不够优雅, 中国人的聪明才智也无法发挥. 所以引入以下几个命令:

1. 查看文件中的bom.
od -N 10 -t x1 


2. 用echo.
echo -en '\357\273\277'


3. 已经生成好的流, 用sed
sed '1s/^/'$(echo -en '\357\273\277')'/g' 


分享到:
评论

相关推荐

    Java解决UTF-8的BOM问题

    在Java中,当我们从UTF-8编码的文本文件读取内容时,如果文件开头带有BOM,可能会导致程序错误解析字符串,因为BOM并不是实际的文本内容,而是编码的标记。例如,如果你使用Java的默认`BufferedReader`或者`Scanner`...

    批量去掉UTF-8文件中BOM标示符

    总的来说,处理UTF-8文件中的BOM是一个常见的需求,特别是在跨平台开发和文本处理场景中。通过理解编码原理和使用适当的工具或代码,我们可以有效地解决这个问题。对于`batchremovebom.php`这样的脚本,开发者可以...

    gb2312,utf-8,utf-8-bom等编码格式的互相转换

    本文将深入探讨几种常见的编码格式,如GB2312、UTF-8以及UTF-8-BOM,并详细讲解如何在C#中进行这些编码格式之间的转换,同时会涉及到与Stream相关的操作。 GB2312,全称为“国标汉字编码字符集”,是中国大陆广泛...

    批量utf文件转utf8-bom

    在Windows操作系统环境下,经常需要进行这样的转换,因为某些程序或系统可能更倾向于识别带有BOM的UTF-8编码,尤其是在处理源代码文件或者非英文文本时。不带BOM的UTF-8文件可能会导致乱码或者程序无法正确解析。 ...

    UTF8-无BOM转为UTF16LE

    例如,某些数据库或电子表格软件可能更倾向于接受UTF16LE编码,而某些网络服务或文本编辑器可能更偏好UTF8无BOM编码。因此,了解如何在C这样的底层语言中进行这些转换是非常有价值的。 转换过程可能会涉及以下步骤...

    UTF-8去BOM头工具

    然而,UTF-8编码有一个特性,就是对于某些文件,尤其是文本文件,可能会带有“BOM”(Byte Order Mark),也称为字节顺序标记。 BOM头是UTF-8编码的一个可选部分,用于标识文件的编码方式。它的字节序列是`EF BB BF...

    C#写入文件加上bom头,主要适用于utf8文件

    在UTF-8编码中,BOM是一个由三个字节组成的序列:0xEF, 0xBB, 0xBF,它位于文件的开头,用来表明该文件采用的是UTF-8编码。在C#编程中,有时我们需要在写入UTF-8文件时添加这个BOM头,以确保其他程序或系统能正确...

    utf-8 去除bom头文件

    2. **手动去除BOM**:你可以使用文本编辑器,如Notepad++或Sublime Text,打开UTF-8带BOM的文件,选择“编码”菜单,然后选择“转换为UTF-8无BOM”或类似选项。这样会保存一个新的文件,而原文件保持不变。 3. **...

    字符编码转换类,支持 ANSI、Unicode、Unicode big endian、UTF-8、UTF-8+Bom互相转换

    本文将深入探讨PHP中的字符编码转换,特别是针对ANSI、Unicode(包括Little Endian和Big Endian)、UTF-8以及UTF-8+BOM的转换。 首先,让我们了解这些编码格式的含义: 1. ANSI编码:通常指的是Windows系统的默认...

    php utf-8编码去bom小工具

    总的来说,这个PHP小工具是为了解决在UTF-8编码的文本文件中可能出现的BOM问题,尤其对于那些不希望BOM影响其代码执行或显示效果的开发者来说非常有用。通过使用类似上述的代码,开发者可以确保他们的PHP脚本或HTML...

    java 读取服务器上的某个文件,并解决UTF-8 BOM文件的问号问题

    这个场景中,我们面临的挑战是如何正确处理UTF-8带有BOM(Byte Order Mark)的文件,因为BOM可能会导致文件内容显示为问号或者其他乱码。下面将详细介绍如何解决这个问题。 首先,我们需要理解什么是UTF-8的BOM。...

    无头BOM的UTF8文件判断

    但在UTF-8中,字节顺序是固定的,所以BOM并非必需,但它有时被用于识别文件的编码类型。 4. **无头BOM的UTF-8文件**:不含BOM的UTF-8文件,意味着文件内容直接从第一个字符开始,没有额外的三个字节(EF BB BF)...

    Qt实现的gbk/utf8无bom文本转码小工具

    1、Qt实现的gbk/utf8无bom文本转码小工具 2、用到了QDir QDirIterator 递归文件目录 3、QTextStream 以某种编码格式读取文本保存到QString,然后以另一种编码格式保存文本 代码比较简单。

    IDEA支持带BOM的UTF-8编码文件.rar

    在大多数情况下,BOM在UTF-8编码中并不必要,因为它默认是小端序,但对于某些程序或系统,BOM可能有助于识别文件的编码方式。 在处理带BOM的UTF-8文件时,IDEA提供了很好的兼容性。通常,BOM可能会导致一些编辑器或...

    批量去除utf-8的bom头(php版)

    UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符"ZERO WIDTH NO-BREAK SPACE"的UTF-8编码是EF BB BF。所以如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。 Windows就是使用BOM来...

    MFC读取utf8示例

    本示例主要关注的是如何在MFC环境中读取UTF-8编码的文本文件,这在处理多语言或含有特殊字符的文本时显得尤为重要。 UTF-8是一种广泛使用的Unicode编码,能够表示Unicode字符集中的所有字符。在Windows系统中,标准...

    UTF-8文件批量去除BOM标记

    UTF-8编码是一种广泛使用的字符编码标准,尤其在文本文件和网页中常见。它能够表示世界上几乎所有的文字,包括汉字和其他非拉丁字符。UTF-8的全称是“8位Unicode转换格式”,它以1到4个字节来编码Unicode字符。 在...

    Go-utfbom检测BOM并根据需要移除

    在Go语言中,处理BOM尤其重要,因为某些程序可能无法正确解析带有BOM的UTF-8文件。`Go-utfbom`项目就是针对这种情况,提供了一个便捷的工具来检测和移除UTF-8文件开头的BOM。 标题"Go-utfbom检测BOM并根据需要移除...

    java获取文件编码(判断有无BOM)

    BOM是UTF-8、UTF-16和UTF-32等编码格式中的一个可选标记,用于告知解析器文件的编码类型。例如,UTF-8的BOM是三个字节(0xEF, 0xBB, 0xBF),而UTF-16LE和UTF-16BE的BOM分别是两个字节(0xFF, 0xFE)和(0xFE, 0xFF...

Global site tag (gtag.js) - Google Analytics