如何在php中将ASCII编码的字符串转换为UTF8?

发布于 2024-11-26 13:07:38 字数 212 浏览 1 评论 0原文

我尝试这样做: file_put_contents ( $file_name, utf8_encode($data) ) ; 但是当我使用 linux 命令从 shell 检查文件编码时:“file file_name” 我得到: 'file_name: ASCII text'

这是否意味着 utf8_encoding 不起作用?如果是这样,从 ASCII 转换为 UTF8 的正确方法是什么

I tried to do:
file_put_contents ( $file_name, utf8_encode($data) ) ;
But when i check the file encoding from the shell with the linux command: 'file file_name'
I get: 'file_name: ASCII text'

Does it mean that the utf8_encoding didn't worked? if so, what is the right way to convert from ASCII to UTF8

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

爱你是孤单的心事 2024-12-03 13:07:38

如果您的字符串不包含任何非 ASCII 字符,那么您可能不会看到差异,因为 UTF-8 向后兼容 ASCII。例如,尝试编写文本“1000 さくら”,看看会发生什么。

If your string doesn't contain any non-ASCII characters, then you likely won't see differences, since UTF-8 is backwards compatible with ASCII. Try writing, for example, the text "1000 さくら" and see what happens.

半透明的墙 2024-12-03 13:07:38

请注意,utf8_encode 仅转换编码为
ISO-8859-1 到 UTF-8。更合适的名称是
“iso88591_to_utf8”。如果您的文本未采用 ISO-8859-1 编码,则您可以
不需要这个功能。如果您的文本已经是 UTF-8 格式,则不需要
需要这个功能。事实上,将此函数应用于文本
未采用 ISO-8859-1 进行编码的文本很可能会出现乱码。

如果您需要将文本从任何编码转换为任何其他编码,
请查看 iconv()。

请参阅http://php.net/manual/en/function.utf8-encode。 php

Please note that utf8_encode only converts a string encoded in
ISO-8859-1 to UTF-8. A more appropriate name for it would be
"iso88591_to_utf8". If your text is not encoded in ISO-8859-1, you do
not need this function. If your text is already in UTF-8, you do not
need this function. In fact, applying this function to text that is
not encoded in ISO-8859-1 will most likely simply garble that text.

If you need to convert text from any encoding to any other encoding,
look at iconv() instead.

See http://php.net/manual/en/function.utf8-encode.php

败给现实 2024-12-03 13:07:38

ASCII 是 UTF-8 的子集,因此如果文档是 ASCII,那么它就已经是 UTF-8

可以在以下位置找到:将 ASCII 转换为 UTF-8 编码

ASCII is a subset of UTF-8, so if a document is ASCII then it is already UTF-8

Found at: Convert ASCII TO UTF-8 Encoding

牛↙奶布丁 2024-12-03 13:07:38

试试这个:

$data = mb_convert_encoding($data, 'UTF-8', 'ASCII');
file_put_contents ( $file_name, $data );

或用它来更改文件编码:

$fd = fopen($file, 'r');
stream_filter_append($fd, 'convert.iconv.UTF-8/ASCII');
stream_copy_to_stream($fd, fopen($output, 'w'));

参考:如何编写UTF-8 格式的文件?

Try this:

$data = mb_convert_encoding($data, 'UTF-8', 'ASCII');
file_put_contents ( $file_name, $data );

or use this to change file encoding:

$fd = fopen($file, 'r');
stream_filter_append($fd, 'convert.iconv.UTF-8/ASCII');
stream_copy_to_stream($fd, fopen($output, 'w'));

Reference: How to write file in UTF-8 format?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文