问各位老大一个简单的问题, 如何转换数组的字符集?

black_OX 2013-08-20 04:25:46
对于字符串, 有mb_convert_encoding()函数.

可是对于一个数组呢? 难道要循环着用这个函数吗:

array_map(
function($value) use($from, $to) {return mb_convert_encoding($value, $from, $to);},
$input
);


这样会产生效率问题, 如果一个大数据, 就弱爆了.
能不能一次处理,有这样的内置函数吗?或者其他的解决方案?
...全文
197 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wang8223538 2013-08-23
  • 打赏
  • 举报
回复
厉害啊,高人啊
再看我一眼 2013-08-21
  • 打赏
  • 举报
回复
mark下 学习
black_OX 2013-08-21
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
array_walk、array_walk_recursive 但也只是把循环弄到内部去了 但总还是要比你递归的循环来的快 你光 array_map 是不行的!要是多维数组就无能为力了 也可以用迭代器 其实字符集只是在输入输出时才会有转换的要求 输入(比如读数据库),mysql 会给你需要的字符集,不需要自己转换 输出 可透过 ob_start 完成
mb_internal_encoding("gbk");  // 假定你的程序是gbk的 
mb_http_output("utf-8"); // 要输出成 utf-8 的
ob_start('mb_output_handler'); // 只需这样就可以了
其后输出的内容就全部变成 utf-8 的了
老大讲的太好了
  • 打赏
  • 举报
回复
学习了
jdgdf566 2013-08-20
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
array_walk、array_walk_recursive 但也只是把循环弄到内部去了 但总还是要比你递归的循环来的快 你光 array_map 是不行的!要是多维数组就无能为力了 也可以用迭代器 其实字符集只是在输入输出时才会有转换的要求 输入(比如读数据库),mysql 会给你需要的字符集,不需要自己转换 输出 可透过 ob_start 完成
mb_internal_encoding("gbk");  // 假定你的程序是gbk的 
mb_http_output("utf-8"); // 要输出成 utf-8 的
ob_start('mb_output_handler'); // 只需这样就可以了
其后输出的内容就全部变成 utf-8 的了
xuzuning 2013-08-20
  • 打赏
  • 举报
回复
array_walk、array_walk_recursive 但也只是把循环弄到内部去了 但总还是要比你递归的循环来的快 你光 array_map 是不行的!要是多维数组就无能为力了 也可以用迭代器 其实字符集只是在输入输出时才会有转换的要求 输入(比如读数据库),mysql 会给你需要的字符集,不需要自己转换 输出 可透过 ob_start 完成
mb_internal_encoding("gbk");  // 假定你的程序是gbk的 
mb_http_output("utf-8"); // 要输出成 utf-8 的
ob_start('mb_output_handler'); // 只需这样就可以了
其后输出的内容就全部变成 utf-8 的了

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧