如何在 PHP/HTML 中使用区域语言



我正在运行以下代码来选择和更改文本语言。但是当我选择我的区域语言时,它会显示这样的内容。您可以在此处查看示例

示例链接

आपके इनबॉकà¥à¤¸ में 36 संदेश है.जिसमे आपने 4 नहीं पà¥à¥‡ है

我的代码是..

<?php
$lang=$_POST['lang'];
if($lang=='hindi')
{
printf(file_get_contents("hindi.txt"),36,4);
}
if($lang=='english')
{
printf(file_get_contents("template.txt"),36,4);
}
?>
<form method="POST" action="<?php $_SERVER['PHP_SELF'];?>">
<select name="lang">
<option value="hindi">Hindi</option>
<option value="english">English</option>
</select>
<input type="submit"/>
</form>

当对实际文件进行编码没有帮助时,此答案很有用: 如何为 PHP 文件设置 UTF-8 编码

上面的答案会向浏览器发送一个手动覆盖标头,告诉它应该显示为 UTF-8。

基本上,只需确保将所有.php文件保存为UTF-8编码,确保所有数据库表和表单都以UTF-8编码也是如此 - 否则您仍然会出现奇怪的字符。

像Notepad++(在Windows上)这样的编辑器有一个设置,默认情况下将所有新文档设置为UTF-8 - 可能值得看看你的编辑器,看看是否还有一个选项 - 节省将来的麻烦(如果你忘记了 - 去过那里并做到了)。

你应该使用

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

标记中的 HTML 标题部分。ii你只使用原始 php 来生成输出,然后像这样使用这个元标记 -

<!DOCTYPE html>     
<html>
<head><title>Your Page Title here</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<?php
   $lang=$_POST['lang'];
   if($lang=='hindi')
   {
   printf(file_get_contents("hindi.txt"),36,4);
   }
   if($lang=='english')
   {
   printf(file_get_contents("template.txt"),36,4);
   }
   ?>
   <form method="POST" action="<?php $_SERVER['PHP_SELF'];?>">
   <select name="lang">
   <option value="hindi">Hindi</option>
   <option value="english">English</option>
   </select>
   <input type="submit"/>
   </form>
</body>
</html>

最新更新