Earlier quoted context omitted.
Genuinely curious, what would you like it to look like?
I don't have skin in the game, but at least the .Net way is quite explicit, which I like: byte[] unicodeBytes = Encoding.UTF8.GetBytes(inputString); // Perform the conversion from one encoding to the other. byte[] asciiBytes = Encoding.Convert(Encoding.UTF8, Encoding.ASCII, unicodeBytes); string outputString = Encoding.ASCII.GetString(asciiBytes); Adapted from https://learn.microsoft.com/en-us/dotnet/api/system.text.…
utf8_bytes: bytes = bytes(input_string, encoding="utf-8")
# Perform the conversion from one encoding to the other.
unicode_string: str = str(utf8_bytes, encoding="utf-8")
ascii_bytes: bytes = bytes(unicode_string, encoding="ascii")
# The conversion could also be written as:
ascii_bytes: bytes = utf8_bytes.decode("utf-8").encode("ascii")
output_string: str = str(ascii_bytes, encoding="ascii")
The biggest difference is that the conversion step requires you to explicitly decode the bytes to a unicode string and then encode the unicode string back to bytes rather than providing a convert() method that does this internally.Perhaps a convenience method would be nice, something like this, but it somewhat obscures the intermediate decode-to-unicode step:
ascii_bytes: bytes = utf8_bytes.convert(to_encoding="ascii")