簡體   English   中英

在 php 中從 mssql 編碼和解碼 html 代碼

[英]encode & decode html code from mssql in php

我剛剛在我的網站上添加了一個 WYSIWYG 編輯器,這樣我的用戶就可以以他們想要的任何方式格式化他們的內容。 編輯器工作正常,並成功地將 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,我們可以安全地使用 INSERT 或 SELECT 和 mysql_escape_string($var) 而沒有任何編碼函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM