0
我正在寫一個[]byte
數組與Golang到一個文件(代碼如下)。在我將它寫入文件後,我想用PHP打開文件並讀取字符串。但是,由於它的編碼,我需要使用unpack
?我不確定要使用什麼格式。Golang []字節到PHP字符串
這裏是我的Golang代碼:
var jsonlen uint16
// 16KB output buffer
wbuf := bufio.NewWriterSize(os.Stdout, 16384)
// write the magic bytes
fmt.Print(MagicBytes)
// encode and write json
json, err := json.Marshal(Metadata)
if err != nil {
fmt.Println("Failed to encode the Metadata JSON:", err)
return
}
jsonlen = uint16(len(json))
err = binary.Write(wbuf, binary.LittleEndian, &jsonlen)
if err != nil {
fmt.Println("error writing output: ", err)
return
}
err = binary.Write(wbuf, binary.LittleEndian, &json)
if err != nil {
fmt.Println("error writing output: ", err)
return
}
沒有寫任何永久性的PHP代碼,但這樣沒有任何顯示在這裏。
規則:永遠不要** ** ** **過撥弄着字節順序。決不。只需寫入字節片'json'。如果您確實需要寫入初始長度:如果可能的話使用十進制(例如4個字節,如「2371」)而不是二進制格式。有關更多信息,請參閱http://commandcenter.blogspot.ch/2012/04/byte-order-fallacy.html – Volker
@Volker對這個東西來說很新,所以不知道這意味着什麼抱歉,哈哈。我在文件開始處寫入4個字節來標識文件,之後將寫入包含JSON長度的uint16,之後將寫入JSON,然後文件的其餘部分將繼續。這是一個修改後的音頻格式。 – cheese5505
如果你不知道字節順序和那些東西,你爲什麼使用binary.Write?不要這樣做。 – Volker