如何将十六进制字符串转换为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:اليوم
这个(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;
}