アクセント付き文字を含む文字列を出力するWebページがあります。PHPのインクルードファイル内のアクセント付き文字
メインページで変数$myGlobalStr
が宣言されていますが、それは関数outputGlobalVariable()
によって返されます。すべてが期待どおりに動作します。私は私のページに<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
を使用しようとした
私は機能outputFunctionVariable()
内の非常に同じ文字列、出力はUTF-8形式であることを宣言する。..
、私はまたの初めにheader('Content-type: text/html; iso-8859-1')
を含めるしようとした広告私のインクルードファイル。どちらも動作しません。
以前はインクルードファイルで文字セットを指定する必要はありませんでした。私はoutputFunctionVariable()に関数utf8_decode()
を使用できることを知っていますが、なぜそれが起こっているのか、これの背後にある論理を理解することに興味があります。
WindowsではZend Server CEを使用しています。
のindex.php
<?
$myGlobalStr = "1. Dites bonjour à l'élève.";
include("includes/functions.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test</title>
</head>
<body>
<?=outputGlobalVariable()?>
<hr>
<?=outputLocalVariable()?>
</body>
</html>
のfunctions.php
<?
function outputGlobalVariable() {
global $myGlobalStr;
return $myGlobalStr;
}
function outputLocalVariable() {
$myStr = "2. Dites bonjour à l'élève.";
return $myStr;
}
?>
出力
1. Dites bonjour à l'élève.
------------
2. Dites bonjour à l'élève.
これらのページを変更するために使用しているエディタは、物事を揺るがしている可能性があります。PHPのせいではありません。結局のところ、functions.phpはindex.phpとは別のファイルなので、PHPがそれらを手に入れようとするよりずっと前に、ゴミ箱が出てきた可能性があります。 –