PHP HTML中的俄语

时间:2014-05-06 07:56:09

标签: php mysql json cyrillic

我用PHP和PHP保存了俄语MySQL的。以下是示例字符тыуиппюлкйчг

我在保存时使用PHP中的这些行

mysql_query("set character_set_server='utf8'");
mysql_query("set names 'utf8'");

我在数据库中检查过它已成功保存..现在我想在EDITOR中将它显示给用户,它返回给我????????????

这是我的代码如何从表中获取并显示它

$.getJSON("getSingleRow.php?id="+id+"&type="+type, function(json){ 
 $("#"+key).val(val);
});

在getSingleRow.php上我有这段代码

echo json_encode($russian);

注意:当我直接运行getSingleRow.php时,它也会打印????????????

已更新: 首先,它在数据库中成功保存,我可以看到有俄语。

我有两个页面可以获得它。一个页面有编辑器,我在顶部有这一行

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

另外在php中我有这条线

header('Content-Type: text/html;charset=utf-8');

其他文件位于服务器端,我从中得到它... getSingleRow.php 在这个页面的顶部我有

header('Content-Type: text/html;charset=utf-8'); 

并且最后我有这个代码

echo json_encode($russian);

这个问题的所有答案已经应用但没有运气

即使这段代码不能正常工作

<?php
header('Content-Type: text/html;charset=utf-8');
echo "тыуиппюлкйчг ";
?>

6 个答案:

答案 0 :(得分:2)

在要显示的页面中放置一个标题字符集charset = utf-8。

<?
header('Content-Type: text/html;charset=utf-8');
?>

答案 1 :(得分:1)

  1. 确保数据库charset / collat​​ion为UTF-8

  2. 在页面上插入这些俄语字符(表单,textarea ),通过将Content-Type设置为,确保编码为UTF-8 为text / html;字符集= UTF-8。直接在表单中输入俄语文本 输入

  3. 在处理此表单的处理页面上,将其插入 数据库,请务必执行SET NAMES utf8,以便将其存储为UTF-8 在插入数据之前,请事先在单独的查询中。

  4. 在视图中渲染数据库中的内容时,请确保 Content-Type是text / html;字符集= UTF-8。

  5. 确保内容类型不是windows-1251或iso-8859-1 / latin1。确保数据库charset / collat​​ion不是ISO-8859-1 / Latin1。

    来自:MySQL - Russian characters display incorectly

答案 2 :(得分:0)

数据库上的排序规则必须设置为西里尔语才能接受俄语字符。我最终使用了CYRILLIC_GENERAL_CI_AS校对集。

点击此链接:http://www.davecheung.com/blogpost/converting-a-sql-server-2005-database-to-accept-russian-charactersmultilingual-characters/

答案 3 :(得分:0)

您是否在json_encode()中尝试过JSON_UNESCAPED_UNICODE参数?

json_encode($russian, JSON_UNESCAPED_UNICODE)

只适用于PHP 5.4.0

如果您的版本是之前的版本,请尝试以下操作:

<?php
$str = 'russian - русский';
$str = json_encode($str);
$str = preg_replace_callback('/\\\\u([0-9a-f]{4})/i',
function ($matches) {
    $sym = mb_convert_encoding(
            pack('H*', $matches[1]), 
            'UTF-8', 
            'UTF-16'
            );
    return $sym;
},
$str
);
echo $str . PHP_EOL;

答案 4 :(得分:0)

请在显示数据的上方设置mysql_set_charset('utf8');

答案 5 :(得分:0)

使用此代码后

$conn = mysqli_connect($dbhost, $dbuser, $dbpass);

您必须在MySQL中为俄语添加此代码。

mysqli_query($conn, "set names utf8");