質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.32%

php UTF-8 ページ内の一部だけShift-JISにする方法

解決済

回答 4

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 6,203

hizirida

score 24

ワードプレス php UTF-8 のページの一部だけを

Shift-JIS 表示を可能にする方法はありますか?

現在phpに日本語書くと文字化けします。

<p>サンプル</p>
   ↓
<p>�T���v��</p>

一行だけ日本語のままにしたいと思っています。

詳細

現在プラグインの中のファイル(php)のカスタマイズを行っています。

元々phpには英文で書かれている文章を日本語化してあるので、

ブラウザ表示では1ページ丸ごと日本語です。

そのページ内に、任意に文章を追記すると文字化けします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • mpyw

    2016/06/06 08:36

    意図はなんでしょうか?現在のWebにおいて,UTF-8以外を採用するメリットは殆どありません.「Shift_JISじゃないとできない」と思い込んでいる,ということはないですか?

    キャンセル

  • hizirida

    2016/06/06 10:22

    詳細を追記しました。

    キャンセル

回答 4

+3

日本語がShift_JISで書かれているならその部分をUTF-8に変換すべきです.日本語の表現のためにShift_JISを使うのは,「Windowsのメモ帳でも編集できる」ぐらいのメリットしかありません.まともなテキストエディタを使えばUTF-8も正しく編集できます.(それどころか,「Sublime Text 3」「Atom」など海外製の有名なエディタはUTF-8しかサポートしていないことのほうが多いです)

(もしかして,「日本語はShift_JISじゃないと書けない」と思い込んでませんか?むしろ英文しか無いなら文字コードはASCIIの一種類だけになりますし,日本語が入ってないとUTF-8/EUC-JP/Shift_JISなどを選択する意味がなくなります)

  • Windows向け: KanjiTranslator

  • OSX/Linux向け: nkfをパッケージマネージャから入れてください (OSXならbrew,Ubuntuならapt-get)

変換先コードは「UTF-8 (BOM無し)」です.改行コードはどちらでもいいですが,どちらかといえばLF推奨です.

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/06/06 11:17

    ご回答ありがとうございます。
    解決しました。

    キャンセル

+2

UTF-8で日本語は表示できます。
Shift-JISでないと表示できないことはありません。

日本語を記載したPHPファイルを UTF-8(BOMなし)で保存することで問題なく動作すると思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/06/06 11:18

    ご回答ありがとうございます。
    UTF-8で保存したら表示できました。

    キャンセル

checkベストアンサー

+1

現在プラグインの中のファイル(php)のカスタマイズを行っています。
元々phpには英文で書かれている文章を日本語化してあるので、
ブラウザ表示では1ページ丸ごと日本語です。
そのページ内に、任意に文章を追記すると文字化けします。

プラグインのファイルを直接編集するのはお勧めしませんが、たぶんテキストエディタでの保存時に文字コードを選択せずに保存されているのではないでしょうか。

Windows の「メモ帳」以外の「UTF-8(BOM無し)」が編集できるエディタでそのファイルを開き、「名前を付けて保存」を選び、「文字コード」を「UTF-8(BOM無し)」に変えて保存してみてください。
お使いのエディタでも保存時の文字コード選択は可能だと思います。

【HTML、PHPファイルで文字コードUTF-8使用時の注意点(BOM有り、無し)|PHP工房】
http://www.php-factory.net/trivia/03.php


プラグインの編集箇所が $translated_text = __( 'text', 'domain' ); のように __() _e() 関数が使われている箇所であれば、翻訳ファイルを用意すれば変更可能です。

【【WordPress】「__()」と「_e()」について – ysklog】
http://ysklog.net/wordpress/1616.html

【WordPress の翻訳 - WordPress Codex 日本語版】
https://wpdocs.osdn.jp/WordPress_%E3%81%AE%E7%BF%BB%E8%A8%B3

また、その1箇所(もしくは少数)のみなら、functions.php で制御する方法もあります。こちらのほうがアップデートにも対応しやすい気がします。

【gettextフィルタを用いたWordPress管理画面カスタマイズ】
http://ounziw.com/2011/06/22/gettext-filter/

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/06/06 11:29

    > メモ帳でUTF-8保存するとBOM入っちゃうのでNGです。

    以前やらかしたことありました。

    キャンセル

  • 2016/06/06 11:35

    To: hizirida
    > TeraPad初期設定をUTF-8にしました。
    「初期文字コード」でしょうか?その場合海外プラグインなどの編集をした際に保存時にSHIFT-JISで保存されます。「保存文字コード」を設定することもできますが、意図しない文字コード変換をしてしまいそうなので私は「ステータスバー」右下の文字コードを確認することを癖にしています。

    キャンセル

  • 2016/06/06 11:50

    kei344さん ご指摘ありがとうございます。
    おっしゃる通り、私も確認時に右下の文字コードを見ました。
    でぇ、SHIFT-JISになっていたわけで・・・。
    また、カスタマイズしたプラグインも海外のものです。
    色々とアドバイスまでしていただき感謝いたします。


    キャンセル

0

<p>サンプル</p>
という文字が文字化けするというならそれは設定の問題ではないかと思います。
1行だけできても、他に日本語として表示する場面があれば、それは根本的な解決とはなりません。
php.iniのdefault_charsetをUTF-8にすることで直るかもしれません。
XAMPPの文字化けをphp.iniの設定で直す方法【初心者向け】

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/06/06 10:24

    すみません。
    詳細が足りなかったようです。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.32%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る