Преобразование строки в Unicode с VB.NET - PullRequest
0 голосов
/ 12 ноября 2009

Как я могу преобразовать греческую строку в Unicode с VB.NET, не зная кодировку источника?

1 Ответ

0 голосов
/ 13 ноября 2009

Не зная, что вы не можете сделать что-то очень надежное. Но если вы точно знаете, что это будет греческий, то вы можете попробовать поддерживаемые греческие кодовые страницы:

  • windows-737 = OEM - греческий 437G
  • windows-869 = OEM - современный греческий
  • windows-875 = IBM EBCDIC - современный греческий
  • windows-1253 = Windows - греческий
  • windows-10006 = MAC - греческий I
  • windows-20423 = IBM EBCDIC - греческий
  • windows-28597 = ISO 8859-7 греческий

Наиболее вероятным является 1253 (не 1250, как указано выше). Но вы можете попробовать все из них, по одному за раз, а затем проверить, есть ли полученные символы на греческом (и, возможно, на латыни, если вы хотите это принять).

Для проверки вы можете использовать RegExp с \ p (http://msdn.microsoft.com/en-us/library/az24scfc.aspx#character_classes) и использовать нужные блоки Unicode (http://msdn.microsoft.com/en-us/library/20bw873z.aspx#SupportedNamedBlocks).

Вы можете попробовать [\ p {IsBasicLatin} \ p {IsGreek}] * * (и, возможно, добавить IsGreekExtended, хотя вы не получите это ни на одной из перечисленных кодовых страниц).

Если вы получаете что-то еще (скажем, кириллицу), вы знаете, что вы ошиблись кодовой страницей.

Извините, но не зная кодовую страницу, все, что вы делаете, это угадываете. И есть только так много, что вы можете сделать, чтобы улучшить это предположение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...