我用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 "тыуиппюлкйчг ";
?>
答案 0 :(得分:2)
在要显示的页面中放置一个标题字符集charset = utf-8。
<?
header('Content-Type: text/html;charset=utf-8');
?>
答案 1 :(得分:1)
确保数据库charset / collation为UTF-8
在页面上插入这些俄语字符(表单,textarea ),通过将Content-Type设置为,确保编码为UTF-8 为text / html;字符集= UTF-8。直接在表单中输入俄语文本 输入
在处理此表单的处理页面上,将其插入 数据库,请务必执行SET NAMES utf8,以便将其存储为UTF-8 在插入数据之前,请事先在单独的查询中。
在视图中渲染数据库中的内容时,请确保 Content-Type是text / html;字符集= UTF-8。
确保内容类型不是windows-1251或iso-8859-1 / latin1。确保数据库charset / collation不是ISO-8859-1 / Latin1。
答案 2 :(得分:0)
数据库上的排序规则必须设置为西里尔语才能接受俄语字符。我最终使用了CYRILLIC_GENERAL_CI_AS校对集。
答案 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");