如何将十六进制字符串转换为 HTML 实体



如何将十六进制字符串转换为HTML实体? 供参考 (https://v2.cryptii.com/hexadecimal/htmlentities(

例如,将"627 644 64a 648 645"转换为"اليوم">

我是 c++ 的新手,对阿拉伯字符具有挑战性。现在我有一个用于该阿拉伯字符的十六进制字符串,我需要将其转换为 HTML 实体,以便我可以存储在数据库中,然后在浏览器中显示。

string HEX_string="627 644 64a 648 645";
string html_entities=getHtmlEntities(HEX_string);
cout << "html_entities:" << html_entities << "n";

我希望代码的输出是,

html_entities:&#1575;&#1604;&#1610;&#1608;&#1605;

这个(getHtmlEntities(函数的实现是什么?

int getDecimal(string HexNumber)
{
    int i, r, len, hex = 0;
    len = HexNumber.length();
    for (i = 0; HexNumber[i] != ''; i++)
    {
        len--;
        if(HexNumber[i] >= '0' && HexNumber[i] <= '9')
            r = HexNumber[i] - 48;
        else if(HexNumber[i] >= 'a' && HexNumber[i] <= 'f')
            r = HexNumber[i] - 87;
        else if(HexNumber[i] >= 'A' && HexNumber[i] <= 'F')
            r = HexNumber[i] - 55;
        hex += r * pow(16,len);
    }
    return hex;
}
string getHtmlEntities(string HEX_string)
{
    istringstream iss(HEX_string);
    string HTML_entities="";
    string s;
    while (getline(iss,s,' '))
    {
        int DecimalNumber=getDecimal(s.c_str());
        HTML_entities+="&#";
        HTML_entities+=to_str(DecimalNumber);
        HTML_entities+=";";
    }
    return HTML_entities;
}
int main() 
{
    string HEX_string="627 644 64a 648 645";
    string HTML_entities=getHtmlEntities(HEX_string);
    cout << "HTML_entities:" << HTML_entities;
    return 0;
}

最新更新