2016-12-13 3 views
1

Ich habe folgende Skripte, die ein Bild als String lesen und drucken:Funktioniert Node.js fs.readFile() als file_get_contents() von PHP?

PHP:

<?php 
echo file_get_contents("/path/to/small.png"); 

Node.js:

var fs = require('fs') 
var file = fs.readFileSync('/path/to/small.png', 'utf8'); 
console.log(file) 

Aber es ist ein wenig Unterschied zwischen den Saiten Ausgang von 2 Skripten. Ich habe versucht, das gleiche mit dem folgenden Go-Code und die Ausgänge sind identisch mit dem PHP-:

package main 

import (
    "fmt" 
    "io/ioutil" 
) 

func main() { 
    buf, err := ioutil.ReadFile("/path/to/small.png") 
    if err != nil { 
     panic(err) 
    } 

    content := string(buf) 
    fmt.Println(content) 
} 

Also, jemand hätte eine Idee warum fs.readFile() verhält sich anders?

Antwort

1

Garbage in, garbage out. Wenn Sie Node mitteilen, dass Ihre binäre Bilddatei eine einfache Textdatei ist, die als UTF-8 kodiert ist, ist es kein Wunder, dass Sie unerwartete Ergebnisse erhalten.

Auf der anderen Seite druckt Ihr PHP-Code nur die exakten gelesenen Bytes.

Verwandte Themen