PHP htmlentities 损坏字符串


php htmlentities corrupt string

出于安全原因,我想添加一个函数,使用下面的代码将字符串转换为安全格式。 在普通英语字符中,它可以正常工作,但是当我使用像ከበደ这样的阿姆哈拉字符时,我得到不同的字符串,如ከበደ,我该怎么办。

    echo safestring("ከበደ");
    //the string after echo is absolutely changed

    function safestring($str){
        //make the string from SQL injection
        $str  = htmlentities($str);
        $str= mysql_real_escape_string($str);
        return $str;
    }

首先,首先要提供文档的charset

.HTML

只需将以下代码添加到 HTML 的 <head> 元素

         <meta charset="UTF-8">

.PHP

对于 JSON,您可以使用phpheader 函数,如下所示

         header('content-type: application/json; charset=utf-8');

为了防止丢失字符串中的任何字符,您可以使用下面的代码

        function safestring($string){
            $string = trim($string);
            $string = str_replace("<", "&lt;", $string);
            $string = str_replace(">", "&gt;", $string);
            $string = mysql_real_escape_string($string);
            return  $string;
        }