草庐IT

php - 如何恢复存储在普通 utf8 中的 4 字节表情符号字符的正确编码 - 就像这样 : 😊?

是否可以再次将表情符号3或4字节字符串重新编码为表情符号?我继承了一个utf8_unicode_ci编码的MySQLInnodb表。这些表情符号4字节字符串无处不在。是否可以将它们翻译回表情符号?第一步是将字符集修改为utf8mb4。这将像ð����£这样的所有字符串更改为像这样的字符串:ðŸ∼Š。但我真正想要的是将ðŸ∼Š翻译成类似的内容.(我不知道ðŸ∼Š是否真的是笑脸) 最佳答案 灵感来自IgnacioVazquez-Abrams'comment.下一个python代码片段显示了原始过程Emoji至Mojibake反之亦然(修

php - Javascript 字符串长度不同于 PHP mb_strlen

我使用document.getElementById("text").value.length通过javascript获取字符串长度,以及mb_strlen($_POST['text'])通过PHP获取字符串长度,两者差异很大。在获取字符串长度之前,回车在javascript中进行了转换,但我猜有些字符没有被计算在内。例如,[b]15.Umieszczanieobrazkazlogonastroniezespołu[/b]此文本block在javascript中计算为57,在PHP中计算为58。当文本变长时,差异会增加。有什么办法可以克服这个问题吗? 最佳答

php - PHP 的 mb_internal_encoding 究竟做了什么?

AccordingtothePHPwebsite它这样做:encodingisthecharacterencodingnameusedfortheHTTPinputcharacterencodingconversion,HTTPoutputcharacterencodingconversion,andthedefaultcharacterencodingforstringfunctionsdefinedbythembstringmodule.Youshouldnoticethattheinternalencodingistotallydifferentfromtheoneformult

php - iconv() 对比utf8_encode()

当您有一个不同于UTF-8的字符集,并且需要将其转换为JSON格式以将其迁移到数据库时,可以在PHP中使用两种方法,调用utf8_encode()和iconv()。我想知道哪个性能更好,什么时候使用它们更方便。 最佳答案 whenyouhaveacharsetdifferentofUTF-8不-utf8_encode()仅适用于将ISO-8859-1字符串转换为UTF-8。Iconv提供了大量的源和目标编码。关于性能,我不知道utf8_encode()在内部如何工作以及它使用什么库,但我的预测是不会有太大差异-至少在“正常”上不会以

php - 在 php 中将 UTF-16LE 转换为 UTF-8

我使用iconvphp函数,但有些字符无法正确转换:...$s=iconv('UTF-16','UTF-8',$s);...$s=iconv('UTF-16//IGNORE','UTF-8',$s);...$s=iconv('UTF-16LE','UTF-8',$s);...$s=iconv('UTF-16LE//IGNORE','UTF-8',$s);...我也尝试了mb_convert_encoding功能,但无法解决我的问题。示例文本文件:9px.ir/utf8-16LE.rar 最佳答案 iconvsupportstheUT

php - utf8字符串长度

php中的strlen()函数无法正确返回utf8字符的字符串长度,例如سلام是4个字符,但在使用strlen后返回8个字符 最佳答案 核心PHP字符串函数都假定1个字符=1个字节。他们没有不同编码的概念。要计算UTF-8字符串中有多少个字符(而不是多少个字节),请使用mb_strlen等效并告诉它字符串是什么编码:echomb_strlen('سلام','UTF-8'); 关于php-utf8字符串长度,我们在StackOverflow上找到一个类似的问题:

PHP 将 Windows-1251 转换为 UTF 8

我有一个小的html代码,我需要将它转换为UTF-8。我用这个iconv("windows-1251","utf-8",$html);所有文本都能正确转换,但如果文本例如标签...,然后它不转换文本,我看到像这样的东西Показатьмн 最佳答案 如果您可以访问Multibye软件包,则可以尝试一下。请在此处查看PHP页面:http://www.php.net/manual/en/function.mb-convert-encoding.php$html_utf8=mb_convert_encoding($ht

php - 调用未定义函数 mb_strimwidth

几个月前,我编写了一个简短的代码,它使用mb_strimwidth()将一些文本精确地放入表格单元格中,将点放在截断字符串的末尾。现在,一段时间后,我尝试执行相同的代码,但出现以下错误:Fatalerror:Calltoundefinedfunctionmb_strimwidth()in...我试图找到mbstring.php文件,当我找到mb_strimwidth()函数时,我发现它不再实现了。这怎么可能?但我的主要问题是:如何获得与mb_strimwidth()相同的结果?我想使用循环和mb_strwidth()重写函数,但是mbstring.php文件中的所有函数都是空的。

PHP:将 curl_exec 输出转换为 UTF8

我只想使用UTF8。问题是我不知道每个网页的字符集。我如何检测它并转换为UTF8?true,);curl_setopt_array($ch,$options);$data=curl_exec($ch);//$data=magic($data);print$data;参见:http://paulisageek.com/tmp/curl-utf8什么是magic()? 最佳答案 按照Gumbo和Pekka的建议,我编写了curl_exec_utf8/**Thesameascurl_execexcepttriesitsbesttoconv

php - fwrite() 和 UTF8

我正在使用phpfwrite()创建一个文件,我知道我所有的数据都是UTF8格式(我已经对此进行了广泛的测试-当将数据保存到数据库并在正常网页上输出时,一切正常并报告为utf8。),但我被告知我正在输出的文件包含非utf8数据:(bash(CentOS)中是否有检查文件格式的命令?当使用vim时,它显示的内容为:Donâ~@~Ytdoanything....Itâ~@~Ysagreatsitewitheverything....Weâ~@~Yveonlyjustlaunched/任何帮助将不胜感激:确认文件是UTF8或如何将utf8内容写入文件。更新为了阐明我如何知道我有UTF8格式的