Sajid227 Ответов: 2

Как усечь строку на языке урду


I have a function that truncate a string after givin lenght ,


thats work fine when I use English language,but when I switched to Urdu by changing globalization setting in window,then it does not work expectedly,like in the following picture,I want (...) on opposite side


изображение здесь для уточнения Нажмите на меня пожалуйста

Что я уже пробовал:

<pre>Public Shared Function StringTruncate(ByVal strArg As String, ByVal len As String) As String

            If Trim(strArg).Length > len Then
                Return Left(strArg, len) & "..."
            Else
                Return strArg
            End If
        End Function

Richard MacCutchan

Попробуйте сначала поставить многоточие: Return "..." & Left(strArg, len).

2 Ответов

Рейтинг:
4

Sajid227

After one day struggle I have found js and C# solution of language detection problem. Here is the code through which we can check any language that user input in the field.


LanguageDetector ld = new LanguageDetector();
string lanCode = ld.Detect("this is an example text in english");
if (lanCode == null) throw new Exception("Cannot detect language");
string languageNaturalName = ld.GetLanguageNameByCode(lanCode); //returns "English" for language code "en"



JS поддерживается а этоткод c#


Рейтинг:
1

NightWizzard

Причина вашей проблемы заключается в кодировке и направлении чтения (RightToLeft). При переходе на урду система использует Unicode таблица символов, которая использует 2 байта для описания каждого символа урду вместо 1 байта при использовании ANSI или ASCII таблица символов. Самым простым решением было бы удвоить значение len параметр и использование Right вместо Left функция. Также поместите три точки слева от усеченной строки, как предложил Ричард. Для действительно правильного обращения вы должны использовать Encoding функции в VB.NET.

Может быть, эта ссылка поможет вам понять: Как преобразовать / отобразить строку unicode в vb.net / технический блог Нишанта Панта[^]

Для кодирования функций посмотрите здесь: Кодирование-Классе (Система.Текст)[^]