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排序规则. 如你所见,我尝试了几种编码. ?莫 仅供参考:我在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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |