我想将UTF8存储在数据库中。我有Unicode印地语的数据,我想在将其转换为HTML字符集后使用php存储在MySQL数据库中。假设某人将子弹(•)字符输入文本框。保存该数据时,是否应将其转换为•
。
假设我有数据मेरा भारत महान
我希望通过将其转换为html字符将其存储在数据库中。我怎样才能做到这一点?我试图使用htmlentities函数,但这对我来说效果不理想。
答案 0 :(得分:3)
•
项称为HTML实体。在PHP中有一个函数可以创建它们:mb_encode_numericentity
Docs,它是Multibyte String扩展名(Demo)的一部分:
$string = 'मेरा भारत महान';
$encoding = 'UTF-8';
$convmap = array(0, 0xffff, 0, 0xffff);
$encoded = mb_encode_numericentity($string, $convmap, $encoding);
echo $encoded; मेरा भारत महान
但是:您需要知道字符串的编码。在这种情况下,我选择UTF-8
,根据需要修改函数的$encoding
参数和$convmap
数组。
但是,请勿将其存储到您的数据库中。按原样存储并转换输出编码 后从数据库中检索数据。< / p>
答案 1 :(得分:0)
htmlentities
有一个charset参数,请尝试:htmlentities($text, ENT_COMPAT, "UTF-8")