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

点点圈 提交于 2019-12-13 01:42:48

问题


Hi I'm looking for a encode function for utf8mb4,

$var = = "نور";

echo utf8mb4_encode($string);

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

The output should be "نور" this, its a conversion of $var in utfmb4


回答1:


The return value of the mb_convert_encoding function could give you the desired result.

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



回答2:


mb_convert_encoding is the answer. another option is the iconv function - but this is assuming $var is not already in utf8 - you must first find out what characterset $var is encoded in. and if your variable is indeed hardcoded into the PHP script itself, then either:

it's already utf-8 encoded

OR

your php script starts with

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

(just replace ISO-8859-1 with whatever the actual encoding is)

OR

its a bug in your source code. (because PHP source code is UTF-8 encoded by default, unless otherwise specified with the encoding declaration)

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

(PS, utf8mb4 is NOT a character encoding, utf8mb4 is just MySQL's nickname for utf8. what MySQL calls utf8 is actually a 3-byte subset of the real utf8. and what MySQL calls utf8mb4 is the real utf8. its just some MySQL brain-damage. and unfortunately, MariaDB inherited this brain-damage from MySQL when it was forked.)



来源:https://stackoverflow.com/questions/46873897/how-to-convert-variable-text-string-to-utf8mb4-in-php

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!