首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Php文本编码

Php文本编码
EN

Stack Overflow用户
提问于 2015-01-25 18:08:12
回答 1查看 544关注 0票数 1

我有一些自动生成字符串的代码,但其中一些特殊字符显示如下:�

代码:

代码语言:javascript
复制
header("Content-type: text/html; charset=utf-8");
function RandomString($length = 10){
    $chars ='0123456789abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ!#¤%&()=?@£$€{}[]+';
    $randString = '';
    for($i = 0; $i < $length; $i++){
        $randString .= $chars[rand(0, 88)];
    }
    echo $randString;
    return $randString;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-25 18:26:27

$chars数组中有几个字符,它们是多字节字符(确切地说,是UTF-8)。不幸的是,PHP本身并不能很好地处理多字节字符。

这里的一个解决方案是用支持多字节字符的变体替换所有调用。mbstring扩展提供了这样的支持。

您可以将调用替换为$chars[rand(0,88)],代之以调用底座函数。所以你得到了类似于mb_substr($chars, rand(0, 88), 1)的东西。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28139692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档