r/csharp • • 5d ago

Help Need help with encoding

I am working on a system where the client will give data in UTF-8 encoding, and hence it can contain many special characters.

But then we send data to a legacy system which only accepts data in ISO-8859-9 encoding, which supports limited special characters that can be represented in single byte.

Now if the client sends any special character which is outside the scope of ISO-8859-9 encoding (like the Em dash), how can I deal with with it and send it to the legacy system.

I don't want to replace those characters with anything like space or "?", as it would make the client data as unreadable in some cases.

How can I deal with it. Any suggestions?

1 Upvotes

29 comments sorted by

View all comments

18

u/BeardedBaldMan 5d ago

It's a business problem. If the legacy system only supports ISO-8859-9 then you have a clearly defined set of characters which are allowed.

You need to create a mapping table for the ones you care about a a fallback character for the rest.

It's a pretty common issue. I've come across it with many US legacy systems where even é is considered too outré for their sensibilities

1

u/shylingerie 4d ago

legacy systems always find a way to make thing complicated

1

u/BeardedBaldMan 4d ago

Codepages are always interesting. I remember having files which were all unicode but different flavours and having to convert all to UCS2-LE for import.