我有一个mime类型的文件:
text/csv
.
我想遍历它并进行一系列字符串操作。
我有十亿个列和行。但举个简单的例子:
Foo Bar Grød
------------------
1 2 3
4 5 6
如果我只是直接打印出值,而没有做任何操作,那么laravel会打印这个(用于标题):
我的代码:
foreach( $headers as $entry ){
dump( $entry );
}
产量
Foo
Bar
b"Grød"
现在问题出在第三行了。这是一个
binary-string
但我要的是
b"
和
"
. 所以我想要这样的输出:
Foo
Bar
Grød
如果我加上
utf8_decode
,像这样:
foreach( $headers as $entry ){
dump( utf8_decode( $entry ) );
}
Foo
Bar
Gr?d
?!
如何从包含丹麦语和字母的所有行中获取实际值?它是标准utf-8编码的一部分,所以应该是火箭科学。
添加1
如果我写作:
dd( $request['csv_file'] )
,然后输出:
-test: false
-originalName: "FILENAME.csv"
-mimeType: "text/csv"
-error: 0
#hashName: null
path: "/private/var/folders/hl/r1syq9ys4z30lw08b6g8hhnh0000gn/T"
filename: "phpzYwY9I"
basename: "phpzYwY9I"
pathname: "/private/var/folders/hl/r1syq9ys4z30lw08b6g8hhnh0000gn/T/phpzYwY9I"
extension: ""
realPath: "/private/var/folders/hl/r1syq9ys4z30lw08b6g8hhnh0000gn/T/phpzYwY9I"
aTime: 2019-02-20 15:31:10
mTime: 2019-02-20 15:31:10
cTime: 2019-02-20 15:31:10
inode: 12891860254
size: 2282762
perms: 0100600
owner: 501
group: 20
type: "file"
writable: true
readable: true
executable: false
file: true
dir: false
link: false
我不知道这对谁有帮助。
如果我(在终端)写
file -I FILENAME.csv
然后输出:
FILENAME.csv: application/octet-stream; charset=binary