如何在php中将变量(文本/字符串)转换为utf8mb4

时间:2017-10-22 12:09:32

标签: php utf-8 utf8mb4 urdu

您好我正在寻找utf8mb4的编码功能,

$var = = "نور";

echo utf8mb4_encode($string);

output = نور // its $var output in UTFMB4

输出应该是“Ù†Ùر”这个,它的转换为$ var in utfmb4

2 个答案:

答案 0 :(得分:2)

mb_convert_encoding函数的返回值可以为您提供所需的结果。

$string = "نور";
$result = mb_convert_encoding($string, 'UTF-8', 'Windows-1252');
//$result = mb_convert_encoding($string, 'UTF-8', 'Windows-1254');
echo $result;

答案 1 :(得分:2)

mb_convert_encoding就是答案。另一种选择是iconv function - 但这是假设$ var还没有在utf8中 - 你必须首先找出哪些characterset $ var被编码。如果你的变量确实硬编码到PHP脚本本身,那么要么:

它已经是utf-8编码的

OR

你的php脚本以

开头
<?php
declare(encoding='ISO-8859-1');

(只需用实际编码替换ISO-8859-1)

OR

它是源代码中的一个错误。 (因为PHP源代码默认为UTF-8编码,除非使用编码声明另有指定)

假设ISO-8859-1,$result = mb_convert_encoding($string, 'UTF-8', 'ISO-8859-1'); / $result=iconv('ISO-8859-1','UTF-8',$string);

(PS,utf8mb4不是字符编码,utf8mb4只是MySQL对utf8的昵称.MySQL调用utf8实际上是真正的utf8的3字节子集。 MySQL调用utf8mb4是真正的utf8。它只是一些MySQL脑损伤。不幸的是,MariaDB在分叉时继承了MySQL的脑损伤。)