加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP:西里尔语(俄语)字符作为问号回应.为什么?

发布时间:2020-12-13 22:03:01 所属栏目:PHP教程 来源:网络整理
导读:我在DB中有一个带有俄语值的项目. 我需要做的就是回应它们,但事实证明它比预期更困难. 所有俄罗斯人都只是打印成问号. IE:??? ? ??????? 对于我尝试过的每种编码,所有英文字符打印都很好. 为了简化我的故障排除,我在沙盒中玩: ?php//header('Content-Type
我在DB中有一个带有俄语值的项目.
我需要做的就是回应它们,但事实证明它比预期更困难.
所有俄罗斯人都只是打印成问号. IE:??? ? ???????
对于我尝试过的每种编码,所有英文字符打印都很好.

为了简化我的故障排除,我在沙盒中玩:

<?php
//header('Content-Type: text/html;charset=koi8-r'); 
//header('Content-Type: text/html;charset=windows-1251');
header('Content-Type: text/html;charset=utf-8');

if(!$link = mysql_connect('localhost','id','pass')) die('Could not connect: ' . mysql_error());

//mysql_set_charset('ISO-8859-1',$link);
//mysql_set_charset('ISO-8859-5',$link);
//mysql_set_charset('windows-1251',$link);
mysql_set_charset('UTF-8',$link);
//mysql_set_charset('KOI8-R',$link);

if (!$db = mysql_select_db('db',$link)) die ("Can't use DB : " . mysql_error());

$result = mysql_query('SELECT * FROM book');
while($row = mysql_fetch_assoc($result))  {
    echo'<pre>';print_r($row);echo'</pre>';

    $str = $row['russian'];
    $str = mb_convert_encoding($str,"UTF-8","KOI8-R");
    echo $str;
}
?>

表字段具有koi8r_general_ci排序规则.
我尝试将其更改为ut8_bin和utf8_unicode_ci.
似乎都没有帮助,所以我把它改回来了.

如你所见,我尝试了几种编码.
我还没找到修复方法.
我变得绝望:)

?莫

仅供参考:我在Win7-64上使用NetBeans进行编码. Server = WAMP堆栈.

解决方法

解决了!!
问题归结为一个简单的连字符.

正如http://punbb.ru/viewtopic.php?id=1222所见
我改变了这个……

mysql_set_charset('UTF-8',$link);

..到…

mysql_set_charset('UTF8',$link);

..一切都很好.

(在尝试过程中,我也遇到了http://developer.loftdigital.com/blog/php-utf-8-cheatsheet,以防它有用.)

我希望这可以在某个时间点帮助别人.
?莫

仅供参考:这是我的沙盒脚本,效果很好

/* SANDBOX */
if(!$link = mysql_connect('localhost','user','pass')) die('Could not connect: ' . mysql_error());
mysql_set_charset('UTF8',$link)) die ("Can't use $_DB : " . mysql_error());

$result = mysql_query('SELECT * FROM book');
while($row = mysql_fetch_assoc($result))  {
    echo'<pre>';print_r($row);echo'</pre>';  // For Testing ---->
}

mysql_close($link);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读