악센트 부호가있는 문자가 포함 된 문자열을 출력하는 웹 페이지가 있습니다.PHP의 포함 파일 내에서 악센트 부호가있는 문자
메인 페이지에 선언 된 변수 $myGlobalStr
이 있는데이 코드는 outputGlobalVariable()
함수를 통해 반환됩니다. 모든 것이 예상대로 작동합니다. 나는 기능 outputFunctionVariable()
내에서 바로 그 같은 문자열을 선언 할 때
, 출력이
이 내 페이지에서<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
를 사용하려고 ... 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가 PHP를 사용하기 훨씬 전에 trashing이 발생할 수있었습니다. –