encode & decode html code from mssql in php


encode & decode html code from mssql in php

我刚刚在我的网站上添加了一个所见即所得的编辑器,这样我的用户就可以按照他们想要的任何方式格式化他们的内容。编辑器工作正常,并成功将 html 编码内容保存在数据库中。

问题是当我尝试查看MSSQL数据库中的内容时,这是它在网页上显示的内容:

�fa)2016-03-16 12:35:19.000Pg;e)@��+�!!P�P+�fa ��`��,�!H+�H+� �����,�1 � �||�`���X���sql�1 m!���1rsode!!htmlspecialchars_decode!flyerflyer9
���9����X� ������x�����`��1�r~����X�����id!1+!connection.phpflyer_id,� x����,�hpr_id,� x����,�) ����a)���]�� �|����*?���@B�r~�������������Ya�v�&������C:'inetpub'wwwroot'123'test_en_de.phpY43ectsql�9SELECT * FROM flyer_master Where flyer_id = '9����#����)`!�@#��,��,��,��)' ��Errorresultodbc_exec� h����,�

显示内容的 php 代码是:

<?php
            include("connection.php");
            $flyer_id = 43 ;

            $sql = ("SELECT * FROM flyer_master Where flyer_id = '".$flyer_id."' ") or die ("Error");
            $result=odbc_exec($connect,$sql)or die(exit("Error en odbc_exec"));
            while(odbc_fetch_row($result))
            { 
                    $id = odbc_result($result,1);
                    $name = odbc_result($result,2);
                    $flyer = odbc_result($result,3);
            }

            echo $flyer;
             //$a = htmlentities($flyer);
             echo "<br>";
             echo htmlspecialchars_decode(flyer);
            //echo $de_code = html_entity_decode($flyer);
            //echo  $de_code = htmlspecialchars($flyer ,ENT_QUOTES, 'UTF-8'); 
        ?>              

你能帮我更正这个代码,以便正确显示html编码文本吗?或者,有没有其他方法可以做到这一点?

注意我正在使用php+odbc+Microsoft SQL Server 2008 R2(RTM)。

您可以使用

utf-8 编码

我需要从一个特定的虚拟主机服务中访问数据库。页面采用 UTF-8 编码,表单接收的数据应插入数据库,而无需更改编码。数据库也采用 UTF-8。

SET 字符集 'utf8'

或 SET 名称 'utf8' 在这里都无法正常工作,因此此解决方法可确保所有变量都设置为 utf-8。

  <?php
// ... (creating a connection to mysql) ...
mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $conn);
$re = mysql_query('SHOW VARIABLES LIKE "%character_set%";')or die(mysql_error());
while ($r = mysql_fetch_assoc($re)) {var_dump ($r); echo "<br />";} exit;
?>`

所有重要的变量现在都是utf-8,我们可以安全地使用带有mysql_escape_string($var)的INSERTs或SELECTs,而无需任何编码函数。