35

奇妙な問題があります。私の HTML/PHP コードのどこかに、取り除くことができない隠れた目に見えない文字があります。Firebug からコピーして変換することで、「ゼロ幅の改行なしスペース」として識別しました。Web サイトで空でないテキスト ノードとして表示され、深刻なレイアウトの問題を引き起こしています。

問題は、私はそれを取り除くことができないということです。Invisibles をオンにしても、ファイルに表示されません (当然)。見つけられないようです。検索ツールがそれを検出していないようです。コードを書き直しましたが、フレームワーク ファイルの 1 つの奥深くにあるようです。

ファイル全体またはそのようなもので文字コードで文字を見つけるにはどうすればよいですか? 私はさまざまなツールを受け入れていますが、それらは Mac OS X で動作する必要があります。

4

5 に答える 5

40

テキスト エディターで文字を見つけることができないため、エディターで文字を取得することはできません。#FEFF または #FFFE は、いわゆるバイト オーダー マークです。これらは、マルチバイト文字が格納される順序を Unicode ファイルで伝える Microsoft の発明です。

これを取り除くには、ファイルを ANSI/ISO-8859 またはBOM なしの Unicode として保存するようにエディタに指示してください。エディタでそれができない場合は、(悲しいことに) エディタを切り替えるか、ファイルが実際にどのように見えるかを確認できる 16 進エディタなどの切り捨てツールを使用する必要があります。

グーグルでは、TextWranglerには「UTF-8、BOMなし」モードがあるようです。それ以外の場合、端末に慣れている場合は、Vim を使用できます。

:set nobomb

ファイルを保存します。プレスト!

文字は常にテキスト ファイルの最初の文字です。BOM をサポートしているエディターは、前述したように、BOM をまったく表示しません。

于 2009-07-01T07:59:28.760 に答える
13

If you are using Textmate and the problem is in a UTF-8 file:

  1. Open the file
  2. File > Re-open with encoding > ISO-8859-1 (Latin1)
  3. You should be able to see and remove the first character in file
  4. File > Save
  5. File > Re-open with encoding > UTF8
  6. File > Save

It works for me every time.

于 2010-06-21T14:52:09.490 に答える
7

バイトオーダーマークです。Mac OS X: ターミナル ウィンドウを開いて、ソースに移動し、次のように入力します。

grep -rn $'\xFEFF' *

BOM を含む行番号とファイル名が表示されます。

于 2009-07-01T08:00:15.593 に答える
3

Notepad++ には、すべての文字を表示するオプションがあります。トップメニューから:

表示 -> 記号を表示 -> すべての文字を表示

于 2009-07-01T07:33:23.230 に答える