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

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

新規登録して質問してみよう
ただいま回答率
85.31%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Q&A

解決済

2回答

10438閲覧

改行コードをLFへ変更したら文字化けが直る理由は?

re97

総合スコア208

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

1グッド

1クリップ

投稿2016/03/16 03:33

・RSS処理をしている際、文字化けが発生しました
・文字エンコードが違っているなら分かるのですが、同じUTF8なのに文字化けが発生する理由が分かりません
・改行コードをLFへ変更したら文字化けが直ったのですが、これはどういう理由によるものでしょうか?
・PHPファイルは必ずLFで保存しなければいけないのでしょうか?

DrqYuto👍を押しています

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

文字エンコードが違っているなら分かるのですが、同じUTF8なのに文字化けが発生する理由が分かりません

とのことですが、「改行コードの間違い ⇒ ??? ⇒ 文字化けの原因」と考えるから難しいのだと思います。
つまり、文字化けの原因を考える前に、そもそも『改行コードを間違った場合に何が起こるのか?』と、原理に立ち返って 考えてみられてはいかがでしょうか。

結構前の質問に対する回答ですが…まずは、下記の回答をご参照ください。

https://teratail.com/questions/24136

これは、なにもPHPに限りませんが、行末を表すコード(End Of Line)が「LF」であるべきところで「CR+LF」となっていると余分な「CR」がゴミとなって、特定の命令文が意味不明になってしまう場合があります。処理系によってはシンタックスエラーが発生して気づけるのですが、たとえばWebブラウザ(のレンダリングエンジン)によっては単に無視される場合もあると思います。(すみません、具体的に調査した訳ではありません…)

実際に問題の発生したプログラムがどのようなものかが分からないので、具体的には記載できないのですが、おそらく文字エンコードの指定が余計な「CR」のせいで 効いていない のではないでしょうか?

問題となっているプログラム等をバイナリエディタで確認してみれば、どこに余分な「CR」が付加されているかが分かりますし、たとえば文字エンコードの指定が正しく働くように、その部分の「CR」のみを削除してやれば、文字化け自体は改善する可能性もあります。

もっとも、文字化けが改善しても他の不具合は残るかもしれませんが。

以上、ご参考になれば幸いです。

投稿2016/03/16 13:47

pi-chan

総合スコア5936

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

re97

2016/03/17 05:02

・回答ありがとうございました ・リンク先の説明分かりやすかったです ・「LF」というより「CR」をどう取り扱うか、ということが重要なのですね ・勉強になりましたー
guest

0

可能性を考えてみました

・改行コードが混在していた
・BOM無しのUTF8を想定しているのにBOM有りのUTF8を与えた

投稿2016/03/16 03:57

HiroshiWatanabe

総合スコア2160

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

re97

2016/03/17 05:04

・回答ありがとうございました ・改行コードが混在していた の意味が分からなかったのですが、[CR][LF]のことでしょうか?
HiroshiWatanabe

2016/03/17 06:31

混在というのはそのものずばりLFで改行していたりCRLFで改行していたり統一されていない状態、という意味です
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問