我有一个奇怪的问题:在我的HTML/PHP代码中,隐藏了一个看不见的字符,我似乎无法摆脱它。通过从Firebug复制并转换它,我确定它是
或“零宽不换行空格”。它显示为非空文本节点,并导致严重的布局问题。
问题是,我无法摆脱它。即使在打开不可见字符时也看不到它(当然)。我似乎找不到它,没有搜索工具能够找到它。我已经围绕可能的位置重新编写了我的代码,但它似乎深藏在其中一个框架文件中。
我如何在多个文件中按字符代码查找字符?我可以使用不同的工具,但必须在Mac OS X上运行。
我有一个奇怪的问题:在我的HTML/PHP代码中,隐藏了一个看不见的字符,我似乎无法摆脱它。通过从Firebug复制并转换它,我确定它是
或“零宽不换行空格”。它显示为非空文本节点,并导致严重的布局问题。
问题是,我无法摆脱它。即使在打开不可见字符时也看不到它(当然)。我似乎找不到它,没有搜索工具能够找到它。我已经围绕可能的位置重新编写了我的代码,但它似乎深藏在其中一个框架文件中。
我如何在多个文件中按字符代码查找字符?我可以使用不同的工具,但必须在Mac OS X上运行。
因为在文本编辑器中找不到它,所以您无法在编辑器中获取字符。#FEFF或#FFFE被称为字节顺序标记。这是微软的发明,用于指示Unicode文件中多字节字符存储的顺序。
要删除它,请告诉您的编辑器将文件保存为ANSI / ISO-8859或无BOM的Unicode。如果您的编辑器不能这样做,您需要更换编辑器(遗憾)或使用某种截断工具,例如允许您查看文件真实外观的十六进制编辑器。
通过谷歌搜索,看起来TextWrangler有“UTF-8,无BOM”模式。否则,如果您熟悉终端,可以使用Vim:
:set nobomb
保存文件即可。完成!
在文本文件中,字符始终是最前面的。支持BOM的编辑器不会将其显示给您。
如果你正在使用Textmate且问题出现在一个UTF-8文件中:
我每次都能成功使用这种方法。
awk 'NR==1 { sub(/^\357\273\277/, "") } 1' file >newfile
- tripleee我知道回答这个问题有点晚了,但我想分享一下如何在Visual Studio中更改编码,希望对那些可能会在某个时候阅读此内容的人有所帮助: