问题标签 [mb-convert-encoding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1122 浏览

php - mb_convert_encoding 'HTML-ENTITIES' 的替代品

我使用这段代码:

问题是有些用户没有在服务器上安装有效的“mbstring”扩展。在这种情况下是否有 mb_convert_encoding 的替代方案?

非常感谢

0 投票
1 回答
988 浏览

php - 为什么 mb_convert_encoding 失败?

为什么

失败?什么会使此功能失败?

我有一个 PHP 网页,它运行代码并在这一行停止,并返回 HTTP 500 错误。

但我不知道为什么会失败。关于在哪里检查的任何建议?

更新: 错误日志显示

0 投票
0 回答
167 浏览

php - 使用 PHP 将字符串编码为 un​​icode

我正在尝试将字符串编码为 un​​icode:

运行应该转换Â字符,但是当我回显它时它仍然显示。为什么?

0 投票
1 回答
772 浏览

php - 如何使用 php 函数 mb_convert_case 并仅将某些单词转换为大写?

我想传递这个输入

预期结果:

AL & JRL 商务中心是最好的

我已经尝试了下面的代码,但它可以转换所有内容。

0 投票
0 回答
517 浏览

php - 使用 mb_convert_encoding() 将字符串从 HTML-ENTITES 转换为 UTF-8 并返回

我想将字符串的字符编码转换为 HTML-ENTITIES,然后再转换回 utf-8。我认为转换为某种编码并返回应该给我留下相同的字符串,但它看起来不像。

我的测试字符串是:

Test: ěščřžýáíé'

转换为 HTML 实体

输出这个结果:

Test: ěščřžýáíé

但是,当我尝试转换回 utf-8

我出人意料地得到(不正确的)输出,而不是原始字符串:

Test: ěščřžýáíé

如何正确转换编码以取回原始字符串?

0 投票
2 回答
6319 浏览

php - 将 UTF-8 转换为 ASCII

当我像这样转换示例字符串时:

从 UTF-8 到 ASCII 结果应该是这样的:

%D8%A8%D8%B2%D8%B1%DA%AF-%D8%AA%D8%B1%DB%8C%D9%86-%D9%88%D8%B1%D8%B2%D8%B4 %DA%A9%D8%A7%D8%B1%D8%A7%D9%86-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE-%D8%A7%D9%84 %D9%85%D9%BE%DB%8C%DA%A9%D8%AA%D8%B5%D8%A7%D9%88%DB%8C%D8%B1

但它是这样的:

?????????????????????-???????????????-????????????? ?????????-8-?????????????????????-???????????????-??? ??????-????????????-???????????????????????????

我真的很困惑有人知道这个问题吗?

更新:我也试过 iconv:

但它说:

注意:iconv():在输入字符串中检测到非法字符

0 投票
2 回答
547 浏览

php - 在字符串末尾有破折号不允许 json_encode

我正在尝试使用 substr($originalText,0,250);从字符串中提取 n 个字符

第 n 个字符是一个破折号。所以当我在记事本中查看它时,我得到最后一个字符 â€。在我的编辑器 Brackets 中,我什至无法打开它的日志文件,因为它只支持 UTF-8 编码。

我也不能在这个字符串上运行 json_encode。

但是,当我使用 时substr($originalText,0,251),它工作得很好。我可以打开日志文件,它会显示一个破折号而不是â€。json_encode 也可以正常工作。

我可以mb_convert_encoding($mystring, "UTF-8", "Windows-1252")用来规避这个问题,但谁能告诉我为什么最后有这些字符会导致错误?此外,在执行此操作时,我的日志文件在括号中显示 â€,这也令人困惑。

我的问题是为什么在字符串末尾有破折号,与在其他任何地方都有不同(后跟其他字符)。

希望我的问题很清楚,如果不是,我可以尝试进一步解释。

谢谢。

0 投票
2 回答
1312 浏览

php - 在 Laravel 项目中转换为 UTF8 不起作用

我正在运行这行代码。

当我在 laravel 中运行它时,我得到了空字符串,但是当我在浏览器中使用一个简单的 test.php 文件在 wamp 上运行它时,我得到了正确的字符串。

0 投票
0 回答
686 浏览

php - PHP mb_convert_encoding,双重解码问题

我对mb_convert_encoding有一些问题。在数据库中我有表:

  • 主题(latin1_swedish_ci)

网站采用 UTF-8 格式。与 MySQL 的 db 连接也是 UTF-8 格式。我无法更改连接设置,但我可以更改数据库表。

我在想我可以对它进行双重解码并获得 UTF-8。现在它看起来像这样:

string 'КвеÑÑ‚Ñ‹.' (length=27)

我尝试了下一个解决方案:

mb_convert_encoding($str, 'Windows-1251', 'UTF-8');

出去:

string '?????�???�?�.' (length=13)

0 投票
0 回答
43 浏览

php - 如何为区域设置语言异常修改 mb_convert_case 函数?

我将标题转换为 MB_CASE_TITLE 大小写:

但是,我们的语言环境有一个例外:I 字母的小写字母是 ı(不是 i)。因此,KALDIRIMLAR 词转换为 Kaldirimlar 而不是 Kaldırımlar。

我怎么解决这个问题?