CSV中微信名字亂碼 問題

今天作項目時,導出爲csv文件格式,而後其中有一列爲微信暱稱,結果轉碼後發現 整條數據都沒有了。mysql

我用的第二種方法sql

$str = '□測試,測試!123□';
$charset = 'utf8';
$regex = '/
    (
        (?: [\x00-\x7F]                  # single-byte sequences   0xxxxxxx
        |   [\xC2-\xDF][\x80-\xBF]       # double-byte sequences   110xxxxx 10xxxxxx
        |   \xE0[\xA0-\xBF][\x80-\xBF]   # triple-byte sequences   1110xxxx 10xxxxxx * 2
        |   [\xE1-\xEC][\x80-\xBF]{2}
        |   \xED[\x80-\x9F][\x80-\xBF]
        |   [\xEE-\xEF][\x80-\xBF]{2}';
 
if ( 'utf8mb4' === $charset ) {
    $regex .= '
        |    \xF0[\x90-\xBF][\x80-\xBF]{2} # four-byte sequences   11110xxx 10xxxxxx * 3
        |    [\xF1-\xF3][\x80-\xBF]{3}
        |    \xF4[\x80-\x8F][\x80-\xBF]{2}
    ';
}
 
$regex .= '){1,40}                          # ...one or more times
    )
    | .                                  # anything else
    /x';
$str1 = preg_replace( $regex, '$1', $str );
var_dump($str1);
 
//另外一種解決方法
$str1 = preg_replace('/[\x{10000}-\x{10FFFF}]/u', '', $str);
var_dump($str1);

下方贈送CSV輸出微信

header("Content-type:application/vnd.ms-excel;");
 $file = $name.date("md", time());
 header("Content-Disposition:filename=$file.csv");

原文: 最近作開發 發現,有些字符不能存進mysql,後來百度後,得出的結論是,mysql的utf8編碼並非真正完整的utf8,在mysql新版本里選擇utf8mb4這纔是完整的utf8編碼。 手機上有些圖標好比: Emoji表情圖標 在mysql裏面須要選擇utf8mb4才能存儲和顯示,網上大部分用mysql存Emoji表情相關的解決辦法是 把mysql的字符集改成 utf8mb4,可是 最近有個需求就是截取掉對於mysql的utf8mb4的字符集。想了幾天,忽然想在wordpress看代碼,結果 果真找到,分享之。此方案爲過濾掉 utf8mb4 的字符app

我這裏的mysql原本就不支持utf8mb4的,因此就這樣基本上看不到效果….wordpress

相關文章
相關標籤/搜索