如何在 php 中将变量 (text/string) 转换为 utf8mb4

How to convert variable (text/string) to utf8mb4 in php

您好,我正在寻找 utf8mb4 的编码函数,

$var = = "نور";

echo utf8mb4_encode($string);

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

输出应该是"Ù†Ù^ر"这个,是$var in utfmb4的转换

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

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

mb_convert_encoding 就是答案。另一个选择是 iconv function - 但这是假设 $var 还没有在 utf8 中 - 你必须首先找出 $var 编码的字符集。如果你的变量确实被硬编码到 PHP 脚本中本身,然后:

它已经是 utf-8 编码

您的 php 脚本以

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

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

这是您源代码中的错误。 (因为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 分叉时。)