Base64 does not store letters, it stores bytes. To get readable text back, the sender and the decoder must agree on how letters become bytes. This tool always uses UTF-8, so café 안녕 encodes to Y2Fmw6kg7JWI64WV and decodes back unchanged. Base64 made with a different text encoding, or from a file, fails with URI malformed.

café 안녕 in the input box. Output (Base64) shows Y2Fmw6kg7JWI64WV.café 안녕 again.Always include an accented letter or a non-Latin character in your test. Plain English letters have the same bytes in almost every encoding, so a test like hello can pass even when the setup is wrong.
The word café saved as old Latin-1 text is the Base64 Y2Fm6Q==. The last letter is a single byte that is not valid UTF-8. Paste that into Decode:

URI malformed is the tool's way of saying the bytes are not valid UTF-8 text. It does not mean the Base64 itself is damaged.
Base64 of an image, a PDF or a zip is made of bytes that are not text, so the text decoder gives the same URI malformed error. To work with a file, pick File in Input (Plain) when encoding, and keep the original file. See data URL vs raw Base64.
Encoding and decoding happen in your browser and nothing is uploaded. Open the free Base64 Encoder.