Как перевернуть текст по горизонтали?

Мне нужно написать функцию, которая будет переворачивать все символы строки слева направо.

например:

Thė quiçk rown fox jumṕềᶁ ovểr thë lⱥzy ȡog.

должно стать

.goȡ yzⱥl ëht rểvo ᶁềṕmuj xof nworḇ kçiuq ėhT

я могу ограничить вопрос UTF-16 (который имеет те же проблемы, что и UTF-8, только реже).

Наивное решение

Наивное решение могло бы попытаться перевернуть все вещи (например, дословно, где слово 16-битное - я бы сказал байт для байта , если бы мы могли предположить, что байт был 16-битным. Я также мог бы сказать символ в символ , где символ - это тип данных Char , который представляет одну кодовую точку):

String original = "ɗỉf̴ḟếr̆ęnͥt";
String flipped = "";
foreach (Char c in s)
{
   flipped = c+fipped;
}

Результаты в неверно перевернутом тексте:

  • f̴ḟếr̆ęnͥt
  • ̨tͥnę̆rếḟ̴fỉɗ

Это потому, что один «символ» занимает несколько «кодовых точек».

  • f̴ḟếr̆ęnͥt
  • ɗ f ˜ ế r ˘ ę n i t ˛

и переворачивание каждой «кодовой точки» дает:

  • ˛ t i n ę ˘ r ế ˜ f ɗ

Что не только не является допустимой кодировкой UTF-16, это не те же символы.

Ошибка

Проблема возникает в кодировке UTF-16, когда:

Те же проблемы возникают в кодировке UTF-8 с дополнительным регистром

  • любой символ за пределами диапазона 0..127 ASCII

я могу ограничиться более простой кодировкой UTF-16 (поскольку это кодировка, которую использует язык, который я использую (например, C #, Delphi)

Проблема, как мне кажется, заключается в том, чтобы определить, объединяют ли несколько последующих кодовых точек символы и должны ли они идти вместе с базовым глифом.

Также интересно посмотреть онлайн-текст сайт reverser не принимает это во внимание.

Примечание:

  • любое решение должно предполагать, что у него нет доступа к библиотеке кодировки UTF-32 (в основном потому, что у меня нет доступа ни к какому UTF- 32)
  • доступ к библиотеке кодирования UTF-32 решит проблему языковых плоскостей UTF-8 / UTF-16, но не проблему объединения диакритических знаков

-121 --- 19196 06-

Web.Config преобразуется вне Microsoft MSBuild? Можно ли использовать преобразование XML-документа Microsoft для подготовки web.configs вне MSBuild? Я хотел бы использовать PowerShell для выполнения этих преобразований без необходимости запускать это через ...

Можно ли использовать преобразование XML-документа Microsoft для подготовки web.configs вне MSBuild? Я хотел бы использовать PowerShell для выполнения этих преобразований без необходимости запускать это через механизм MSBuild. Если бы Microsoft использовала стандартный XSLT, это было бы легко сделать в PowerShell.Насколько я могу судить, я должен использовать их C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web \ Microsoft.Web.Publishing.Tasks.dll, для которого требуется механизм сборки. Спасибо

52
задан Jason 23 October 2012 в 04:19
поделиться