﻿The following code produces mojibake (garbled text) when processing user-submitted data. Diagnose the encoding round-trip corruption and fix it.

```python
def save_to_file(text, filepath):
    with open(filepath, 'w', encoding='latin-1') as f:
        f.write(text)

def load_from_file(filepath):
    with open(filepath, 'r', encoding='utf-8') as f:
        return f.read()

# User submits text with non-ASCII characters
user_text = "Café résumé naïve Üntermensch"
save_to_file(user_text, "data.txt")
recovered = load_from_file("data.txt")
print(f"Original:  {user_text}")
print(f"Recovered: {recovered}")
print(f"Match: {user_text == recovered}")
```

Explain exactly which characters get corrupted and why. Fix both the save and load functions. Include a test with characters from at least 3 different Unicode blocks (Latin, CJK, emoji).
