首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >希伯来语编码- PHP,mysqli

问希伯来语编码- PHP,mysqli
EN

Stack Overflow用户
提问于 2013-09-23 00:50:05
回答 1查看 1.2K关注 0票数 1

我使用MySQLi从数据库中检索信息。我所有的页面都是用UTF-8编码的,没有BOM,我有两个页面要处理,但主要的问题是数据库中的信息是以正常的方式显示的--但是当我检索到它时,它是这样的:

�-���?

在phpMyAdmin面板上-列是latin1_general_ci (我试图使其成为utf8_general以及-相同的输出!)。

"mysql.php":

代码语言:javascript
复制
<?php
header('Content-type: text/xhtml; charset=windows-1255');
$mysql = new mysqli('localhost', 'elenbyin_vadim', 'pass33323', 'elenbyin_vadim');
?>

"index.php",主要部分:

代码语言:javascript
复制
<?php
include ('mysql.php');
include('functions.php');

if($_GET["lang"] == 'rus')
    $lang = 'rus';
else if($_GET["lang"] == 'heb')
    $lang = 'heb';
else
    $lang = 'heb';

.

代码语言:javascript
复制
<div class="main_text">
<?

    $result = $mysql->query('SELECT * FROM homepage');
    while($row = mysqli_fetch_array($result)){
        echo "".$row['title']."<br />".$row['text_heb']."";
    }
?>
</div>

有人能帮我解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2013-09-23 00:53:18

您必须更改字符集才能正常工作:

代码语言:javascript
复制
<?php
    $mysql->set_charset('utf8');
    $result = $mysql->query('SELECT * FROM homepage');
    ...
?>

@Class的注释--如果所有页面都需要它,可以将其添加到mysql.php中

代码语言:javascript
复制
<?php
    header('Content-type: text/xhtml; charset=windows-1255');
    $mysql = new mysqli('localhost', 'elenbyin_vadim', 'pass33323', 'elenbyin_vadim');
    $mysql->set_charset('utf8');
?>

另外,请确保将您的排序规则设置为utf8_general_ci。

一个较旧的方法是将名称设置为utf8:

代码语言:javascript
复制
<?php
    $mysql->query("SET NAMES 'utf8'");
    $result = $mysql->query('SELECT * FROM homepage');
    ...
?>

然而,根据 docs的说法,第一种方法更可取:

注意:这是更改字符集的首选方法。不建议使用mysqli_query()来设置它(例如设置名称utf8)。有关更多信息,请参见MySQL字符集概念部分。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18950307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档