The Rust URL FFI used String::from_utf8_lossy() on raw bytes from C++. That was not equivalent to the old C++ parser behavior for WTF-8 encoded surrogates. For example a byte sequence such as ED A0 80 was treated as three invalid UTF-8 bytes, producing three U+FFFD replacement characters. Instead use String::from_utf8_with_replacement_character and let Rust borrow the input as &str. |
||
|---|---|---|
| .. | ||
| pattern.rs | ||
| url.rs | ||