0

我的语言文件是这样的:

<?php
header('Content-Type: text/html; charset=windows-1255');

function heb($phrase){
    static $lang = array(
        'title' => 'ודים אילוף כלבים',
    );
    return $lang[$phrase];
}

?>

我的 index.php 文件是这样的:

<?php
include('langs.php');
?>

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1255" />
        <title><?php echo heb('title'); ?></title>

        <link rel="stylesheet" type="text/css" href="css/style.css" />
    </head>

<body>
</body>
</html>

但标题是“׳•׳“׳™׳ ׳׳™׳׳•׳£ ׳›׳׳'׳™׳”,而不是希伯来语中的单词-我该怎么做才能在希伯来语中编辑 lang 文件而不得到编码错误?

4

1 回答 1

2

和相关的Content-Type: text/html; charset=windows-1255元标记只是向浏览器指示该站点应该是在 Windows-1255 中编码的;它只是告诉浏览器会发生什么。如果实际内容实际上并未在 Windows-1255 中编码,那么您当然会得到错误的结果。

在 PHP 中,字符串文字具有保存它们的源文件的编码。即:

'title' => 'ודים אילוף כלבים'

这个字符串以任何编码它写入的文件被编码。我猜你的编辑器将文件保存为 UTF-8。所以你实际上是在向浏览器发送 UTF-8 内容,但告诉它它是 Windows-1255 编码的。因此:垃圾字符。

要么将您的 PHP 文件实际保存在 Windows-1255 中,要么将编码指示符设置为(我猜)UTF-8。

于 2013-09-18T10:47:39.387 回答