您好我正在寻找utf8mb4的编码功能,
$var = = "نور";
echo utf8mb4_encode($string);
output = نور // its $var output in UTFMB4
输出应该是“Ù†Ùر”这个,它的转换为$ var in utfmb4
答案 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的脑损伤。)