Wysyłam gzipowany ciąg z C# (używając SharpZipLib) do PHP, gdzie rozpakowuję plik readgz. To działa, jednak po każdym znaku w ciągu znaków występują dwa dziwne znaki (za pomocą vima w konsoli są one wyświetlane jako ^@
). Próbowałem również z gzopen/gzread, ale z tymi samymi wynikami.W PHP każda znak w zdekompresowanym łańcuchu gz jest poprzedzana przez^@, dlaczego?
Po wyczyszczeniu znaków spoza ASCII z ciągu znaków za pomocą $clean= preg_replace('/[^(\x20-\x7F)]*/','', $string);
ciąg znaków $ clean jest identyczny z ciągiem w języku C#.
Podczas tych czynności chciałbym wiedzieć, co się dzieje i dlaczego, więc mogę się upewnić, że to zawsze zadziała lub wymyśli lepsze rozwiązanie.
Czy ciąg źródło w UCS2 lub UTF-16 może? – mario
Nie stosuję ani nie konwertuję do określonego kodowania. Może powinienem jednak, jakie kodowanie powinienem wtedy użyć? – Whiskey