Laravel存储文件编码

问题描述 投票:2回答:2

我正在尝试使用Laravel的存储外观将文本文件保存为UTF-8。遗憾的是找不到方法,它可以像我们一样保存。如何保存为UTF-8?

目前我正在使用以下代码来保存文件;

Storage :: disk('public') - > put('files / test.txt“,$ fileData);

php laravel laravel-5
2个回答
2
投票

您应该能够将“\ xEF \ xBB \ xBF”(将其定义为UTF-8的BOM)附加到$fileData。所以:

Storage::disk('public')->put('files/test.txt", "\xEF\xBB\xBF" . $fileData);

在将文本写入文件之前,还有其他方法可以转换文本,但这是最简单,最容易阅读和执行的方法。据我所知,Illuminate\Filesystem\Filesystem中也没有字符编码方法。

有关更多信息:https://stackoverflow.com/a/9047876/823549What's different between UTF-8 and UTF-8 without BOM?


0
投票

ASCII是UTF-8的子集,因此所有ASCII文件都已经过UTF-8编码。 ASCII文件中的字节和“将其编码为UTF-8”所产生的字节将完全相同。他们之间没有区别,所以没有必要做任何事情。

看起来您的问题是文件实际上不是ASCII。您需要确定它们使用的编码,并正确转码。

© www.soinside.com 2019 - 2024. All rights reserved.