mb_convert_encoding - php中关于iconv和mb_detetct_encoding的疑问

WBOY
リリース: 2016-06-06 20:45:17
オリジナル
988 人が閲覧しました

update 6.11在更仔细的看了php手册中关于mb_detect_encoding的评论之后,

<code class="lang-php">If you try to use mb_detect_encoding to detect whether a string is valid UTF-8, use the strict mode, it is pretty worthless otherwise.

<?php $str = 'áéóú'; // ISO-8859-1
    mb_detect_encoding($str, 'UTF-8'); // 'UTF-8'
    mb_detect_encoding($str, 'UTF-8', true); // false
?>
</code>
ログイン後にコピー
ログイン後にコピー

我又有一个疑问,在检测gbk的时候mb_detect_encoding 返回的是cp936
我需要对这个值进行判断然后使用iconv('gbk','utf-8',$str)来转换,如果是别的呢》

gbk对应的是cp936 别的对应,我应该如何在检测方法中进行匹配呢》?


<code class="lang-php"><br>$a=' "name":"默认排序", "key":"sort", "value":"", "status":"0", "isSelected": "0" }';
// var_dump($b);
$b=iconv('UTF-8', 'GBK', $a);
$x=mb_detect_encoding($a);
$y=mb_detect_encoding($b);
var_dump($x,$y);
var_dump($b);

</code>
ログイン後にコピー
ログイン後にコピー

mb_convert_encoding - php中关于iconv和mb_detetct_encoding的疑问
样图是在浏览器编码utf8下截图,编码换成gbk后中文正常显示

疑问:1、为什么iconv转换后的字符串仍然为utf-8
2、mb_detect_encoding到底是探测的什么编码
3、产生则这样的问题后,我还能不能用mb_convert_encoding转码?

回复内容:

update 6.11在更仔细的看了php手册中关于mb_detect_encoding的评论之后,

<code class="lang-php">If you try to use mb_detect_encoding to detect whether a string is valid UTF-8, use the strict mode, it is pretty worthless otherwise.

<?php $str = 'áéóú'; // ISO-8859-1
    mb_detect_encoding($str, 'UTF-8'); // 'UTF-8'
    mb_detect_encoding($str, 'UTF-8', true); // false
?>
</code>
ログイン後にコピー
ログイン後にコピー

我又有一个疑问,在检测gbk的时候mb_detect_encoding 返回的是cp936
我需要对这个值进行判断然后使用iconv('gbk','utf-8',$str)来转换,如果是别的呢》

gbk对应的是cp936 别的对应,我应该如何在检测方法中进行匹配呢》?


<code class="lang-php"><br>$a=' "name":"默认排序", "key":"sort", "value":"", "status":"0", "isSelected": "0" }';
// var_dump($b);
$b=iconv('UTF-8', 'GBK', $a);
$x=mb_detect_encoding($a);
$y=mb_detect_encoding($b);
var_dump($x,$y);
var_dump($b);

</code>
ログイン後にコピー
ログイン後にコピー

mb_convert_encoding - php中关于iconv和mb_detetct_encoding的疑问
样图是在浏览器编码utf8下截图,编码换成gbk后中文正常显示

疑问:1、为什么iconv转换后的字符串仍然为utf-8
2、mb_detect_encoding到底是探测的什么编码
3、产生则这样的问题后,我还能不能用mb_convert_encoding转码?

首先,看这里
http://cn2.php.net/manual/zh/function.mb-detect-encoding.php
http://cn2.php.net/manual/zh/function.mb-detect-order.php

ps.
如果你是想输出json中文,可以考虑使用servicesjson类。

解决方案是:把utf-8 改成utf8

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!