Tôi đang gửi qua một chuỗi gzipped từ C# (sử dụng SharpZipLib) đến PHP, nơi tôi giải nén với readgzfile. Điều này làm việc, tuy nhiên mỗi ký tự trong chuỗi được theo sau bởi hai ký tự lạ (sử dụng vim trong giao diện điều khiển được hiển thị là ^@
). Tôi cũng đã thử với gzopen/gzread nhưng với kết quả tương tự.Trong PHP, mỗi ký tự trong chuỗi gz giải nén được theo sau bởi^@, tại sao?
Khi tôi xóa các ký tự không phải ASCII khỏi chuỗi bằng $clean= preg_replace('/[^(\x20-\x7F)]*/','', $string);
thì chuỗi $ sạch sẽ giống với chuỗi trong C#.
Trong khi công việc này, tôi muốn biết điều gì đang xảy ra và tại sao tôi có thể đảm bảo điều này sẽ luôn hoạt động hoặc đưa ra giải pháp tốt hơn.
Là chuỗi nguồn của bạn trong UCS2 hay UTF-16 có lẽ? – mario
Tôi không áp dụng hoặc chuyển đổi sang một mã hóa cụ thể. Có lẽ tôi nên mặc dù, những gì tôi nên sử dụng mã hóa? – Whiskey