In .NET is there any way to convert from three letter country codes (defined in ISO 3166-1 alpha-3) to two letter language codes (defined in ISO 3166-1 alpha-2) eg. convert BEL to BE?
Have looked at the RegionInfo class in System.Globalization but the constructor does not seem to support the three letter codes.
The
RegionInfoclass does know the three-letter code (in theThreeLetterISORegionNameproperty), but I don’t think there is a way to getRegionInfobased on this code, you would need to enumerate all regions and add them to your own dictionary, with the three-letter code as a key.However, I think the .NET Framework uses
RegionInfoto work with cultures, not countries in the ISO 3166-1 sense. Therefore, many countries from the ISO 3166-1 standard are not available (try e.g.SX). I guess you should create your own country codebook.Edit: From 246 countries in my current country codebook,
RegionInfois available for 125 of them, the rest (121) are not supported. Conclusion: This is not a good way to get a country codebook.