我想在数据库中存储UTF8。我有Unicode印地语的数据,我想在MySQL数据库中使用php转换为HTML字符集后存储。假设有人在文本框中输入了一个项目符号(•)字符。在保存该数据时,是否应将其转换为•
.
假设我有数据मेरा भारत महान
,我想通过转换为html字符将其存储在数据库中。我该怎么做呢?我尝试使用htmlentities函数,但这对我来说并不令人满意。
•
的东西被称为HTML实体。在PHP中有一个函数可以创建这些:mb_encode_numericentity
Docs,它是多字节字符串扩展(Demo)的一部分:
$string = 'मेरा भारत महान';
$encoding = 'UTF-8';
$convmap = array(0, 0xffff, 0, 0xffff);
$encoded = mb_encode_numericentity($string, $convmap, $encoding);
echo $encoded; मेरा भारत महान
然而:你需要知道你的字符串的编码。在本例中,我选择了UTF-8
,根据它,您需要修改函数的$encoding
参数和$convmap
数组。
但是,不要以这种方式将其存储到数据库中。按原样存储,并在从数据库检索数据后转换输出编码。
类似问题:将(doublebyte)字符串转换为十六进制
htmlentities
有一个字符集参数,Try: htmlentities($text, ENT_COMPAT, "UTF-8")