显示来自mysql数据库的阿拉伯数据

时间:2015-02-25 04:39:10

标签: php mysql sql database mysqli

首先我的代码是一个虚拟代码,它只是为了理解目的而在sql中编写。所以请好好忍受它,因为我稍后会把它改成mysqli ..

我有一些阿拉伯语文本需要存储在数据库中,然后在用户端显示。

要将其存储在数据库中,我将整理更改为utf8_general_ci并在连接文件中使用以下代码,即config.php

<?php
$link = mysql_connect('abc','abc','abc') or die('Cannot connect to the DB');
mysql_select_db('abc',$link) or die('Cannot select the DB');
mysql_set_charset("UTF8", $link);
mysql_query("set character_set 'utf8'");
?>

在它的帮助下,我能够以阿拉伯语形式存储数据,但现在在我的php文件中,应该显示数据我得到字母数字数据(类似这样:u062du0631u0641u0629n)。我的php文件的示例代码是

<?php
require_once('config.php');
$vendorid = $_REQUEST['vendorid'];

        $select = mysql_query("select * from vendor where id = '".$vendorid."'");   

$posts = array();
    if(mysql_num_rows($select)) {
        while($post = mysql_fetch_assoc($select)) {
            $posts[] = $post;
        }
        header('Content-type: application/json');
        echo stripslashes(json_encode(array('vendor list'=>$posts)));
    } else {
    header('Content-type: application/json');
        echo stripslashes(json_encode(array('vendor list'=>'No vendor available')));
    }
?>

4 个答案:

答案 0 :(得分:1)

你可以使用这段代码来查看utf8字符和字符串

mysql_set_charset('utf8',$link);

答案 1 :(得分:1)

try this before query execution:

<p:inputText id="userNameField" update="info"/>
<p:watermark for="userNameField" value="#{...}" id="userLabelWaterMarkId"/>

<p:commandButton id="loginButtonId" onclick="showLoginBox();" update="info">
</p:commandButton>

答案 2 :(得分:0)

  1. 使用mysqli_ * API而不是mysql_ *。后者已被弃用。
  2. 更改为$ mysqli_obj-&gt; set_charset('utf8')而非SET NAMES。
  3. 我认为u062d是'哈哈'?你没有其他方式来输入阿拉伯语而不是使用Unicode代码吗?在某些情况下,Windows允许您执行Alt + 062D。
  4. 一般来说,一开始就适合的html页面允许输入任何utf8字符(包括阿拉伯语)。
  5. 我认为您在使用它的上下文中不需要stripslashes。或者你在数据库中有额外的斜杠? (那将是一个问题。)
  6. 我的代码中没有任何内容会产生'u062d'。
  7. 执行SELECT HEX(col),col FROM ...以选择具有其中一个Unicode字符串的行;这可能会给我们提供更多线索。

答案 3 :(得分:0)