We have a Visual Basic GUI application written many years ago. A couple of years ago, we wrote an Eiffel .NET DLL which provides a lot of the core functionality needed by the VB application. When everything is working this is great, but when something goes wrong, it's very frustrating for the VB developers.
peter_gummer's blog
UTF-8 in .NET, revisited

A couple of months ago I described how I managed to get Eiffel for .NET to work with UTF-8 Unicode strings. The solution given in UTF-8 Unicode in Eiffel for .NET seems to be working fine, but we've noticed that our VB application is running more slowly than before. Well I did say, "This implementation is no doubt inefficient..."
UTF-8 Unicode in Eiffel for .NET

We have an Eiffel for .NET dll which is called by a VB.NET application. We need to internationalize this application. "That should be easy", I thought, "because Eiffel's STRING is basically just a wrapper for the .NET String." So we fed our Eiffel dll some UTF-8 data, which it dutifully manipulated; but the VB.NET client application received garbage. Instead of displaying beautiful Farsi characters, it spat out wingding-dingbat-like droppings. What was wrong?

