ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-07-15 19:16:44  阅读:285  来源: 互联网

标签:php mysql encoding character-encoding special-characters


我在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);

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>';  // For Testing ---->
}

mysql_close($link);

标签:php,mysql,encoding,character-encoding,special-characters
来源: https://codeday.me/bug/20190715/1470550.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有