1. TOPTOP
  2. Webサービス
  3. PHP

TeraPadでWebファイルを編集するときは文字コードをUTF-8Nにする

|

さて。ドットインストールでプログラミング学習中に
気付いたお話を1つ。

お問合せ管理システムを作ろう (全21回) #15 データを削除してみよう (1)

問題の内容

次のコードを書いていた時のことです。

<script>
$(function() {
    $('.deleteLink').click(function() {
        if (confirm("削除してもよろしいですか?")) {
            $.post('./delete.php', {
                id: $(this).data('id')
            }, function(rs) {
                $('#entry_' + rs).fadeOut(800);
            });
        }
    });
});
</script>

コードの詳細は割愛しますが、
要は、phpファイルを読み込んで、jQueryでブラウザ上に
表示されている文字列をfadeOutさせるという内容です。

最初はドットインストールを書き写し、
次にコードをまるまるコピペ。
でもjQueryは動作しない。

なぜ?why?

解決方法

たくさんの方に解決方法を聞いて回って、
最後に分かった方法がコレ↓

WebにアップロードするファイルはBOMなしで保存すること。

個人的にエディタソフトのファイルはTeraPadを使用しています。
TeraPadではUTF-8の文字コードに2種類あるようです。

  • UTF-8 BOMあり
  • UTF-8N BOMなし

UTF-8N

上の画像のように、TeraPadを立ち上げて、

表示

オプション

文字コード

初期文字コードをUTF-8N

にしておく必要があります。
これUTF-8Nにしておくと、jQueryのfadeOutも
動作するようになりました

参考サイト
PHP工房 UTF-8使用時の注意点(BOMあり、無し)

この本↓の843ページにもBOMのエラーについて
言及されていますね。