Çok sayıda bit işaretini işlemek için uzun bir dize kullanacağım ve sonuç dizesini Redis'te tutacaktım. Ancak, bir php böcek (?) Üzerine tökezledi. substr()
ikili güvenli yanlış olduğunu varsayımPHP substr(), ASCII satır sonu baytını neden değiştiriyor?
$bin = 0b00001101; // 13 - ASCII Carriage return
$c = substr($bin, 0, 1); // read this character
printf("Expectation: 00001101, reality: %08b\n", $c); // 00000001
mi: substr()
kullanarak okumak 00001101
bitleri içeren bir bayt beklenmeyen bir değer verir? Ayrıca, aynı sonucu ile 8bit
kodlama ayarlayarak mb_substr()
çalıştı. Sen karşı substr()
bir dize ("13"
)
Bunu dizenin birinci karakteri okuyorsanız için döküm olduğunu Kullanarak bir tamsayı13
için kuruyorsun
Teşekkür bekliyorsanız sonucu vermelidir! Muhtemelen problemin kötü bir örneğini/izolasyonunu yarattım. Aslında daha uzun bir ikili dizgim var, ondan özel bir bayt okuyorum. Örneği yeniden yazacak. – Serge
Doğru, şimdi anladım. Tekrar teşekkürler! – Serge