Char.ConvertFromUtf32 недоступно в Silverlight - PullRequest
1 голос
/ 12 октября 2010

Я конвертирую приложение WinForms в Silverlight (VB.NET). Что я должен использовать вместо Char.ConvertFromUtf32, поскольку он не доступен для использования в Silverlight?

Ответы [ 2 ]

1 голос
/ 01 сентября 2014

От: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/types/how-to-convert-between-hexadecimal-strings-and-numeric-types

Вы можете использовать прямое приведение, например:

// Get the character corresponding to the integral value.
string stringValue = Char.ConvertFromUtf32(value);
char charValue = (char)value;

Небольшое предупреждение, оно будет работать только до 0xffff. Он не будет работать для Unicode высокого диапазона от 0x10000 до 0x10ffff.

Кроме того, если вам нужно проанализировать \ uXXXX , попробуйте следующий вопрос: Как преобразовать escape-последовательности Unicode в символы Unicode в строке .NET?

1 голос
/ 12 октября 2010

UTF-32 в настоящее время не является частью Silverlight, поэтому вам нужно найти способ обойти это ограничение. Я думаю, вам следует остановиться и подумать, зачем вам нужно читать текст в кодировке UTF32.

  • Если вы читаете такой текст из базы данных или файла на сервере , я бы выполнил преобразование на стороне сервера (если возможно, я бы преобразовал все в UTF-8 и избавился от него. данных UTF-32 в одном кадре).

  • Если вы анализируете предоставленный пользователем файл на стороне клиента , я бы обнаружил кодировку UTF-32 и осторожно сказал бы пользователю, что кодировка файла не поддерживается. UTF32 в настоящее время довольно редко встречается, поэтому я думаю, что это не должно быть очень распространенным случаем (но я могу ошибаться, не зная вашей точной ситуации).

Чтобы определить кодировку файла, вам нужно взглянуть на первые несколько байтов (знак порядка следования байтов) - больше информации здесь , если их нет, задача становится намного сложнее и включает в себя некоторый вид эвристика, основанная на частоте символов.

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