微信nickname乱码 php,CSV中微信名字乱码 问题

今天做项目时,导出为csv文件格式,然后其中有一列为微信昵称,结果转码后发现 整条数据都没有了。

我用的第二种方法

$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 的字符

我这里的mysql本来就不支持utf8mb4的,所以就这样基本上看不到效果….

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值