Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];

Вниз

Арабский язык & Delphi   Найти похожие ветки 

 
arab   (2007-10-12 15:29) [0]

Как можно корректно отображать арабские символы на компьютере, на котором неизвестно установлена ли поддержка его?

Собственно я использую ф-ию

function WideStringToString(const ws: WideString; codePage: Word): AnsiString;
var
 l: integer;
begin
 if ws = "" then
   Result := ""
 else
 begin
   l := WideCharToMultiByte(codePage,
     WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR,
     @ws[1], - 1, nil, 0, nil, nil);
   SetLength(Result, l - 1);
   if l > 1 then
     WideCharToMultiByte(codePage,
       WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR,
       @ws[1], - 1, @Result[1], l - 1, nil, nil);
 end;
end;


с кодовой страницей 1256.

Работает чудесно на ПК, где есть поддержка арабского. Можно ли и как схитрить на той машине, где поддержки оного нет?


 
Игорь Шевченко ©   (2007-10-12 15:40) [1]


> Можно ли и как схитрить на той машине, где поддержки оного
> нет?


Можно, наверное. Используя TNT-библиотеку компонентов и работая только с Unicode


 
Desdechado ©   (2007-10-12 16:09) [2]

Но если шрифты не установлены, то хитри-не хитри, увидишь только вопросики.


 
arab   (2007-10-12 16:28) [3]


> Но если шрифты не установлены, то хитри-не хитри, увидишь
> только вопросики.


Да вот вопросиков и нет, даже если нет поддержки арабского в региональных настройках (Font=Tahoma+CharSet=ARABIC_CHARSET).
Только корявенько показывает даже как на такого специалиста в арабском, как я.


 
DrPass ©   (2007-10-13 00:44) [4]


> Да вот вопросиков и нет, даже если нет поддержки арабского
> в региональных настройках

Ага. Я тоже думал, что это оно так коряво показыват арабские символы. Пока моя благоверная (арабка, к слову) не глянула и не спросила, что это за закорючки на экране накаляканы. Когда установил поддержку арабского, все стало отображаться как надо.


 
Германн ©   (2007-10-13 01:12) [5]

Удалено модератором


 
DrPass ©   (2007-10-13 01:41) [6]

Удалено модератором


 
Германн ©   (2007-10-13 01:55) [7]

Удалено модератором


 
Германн ©   (2007-10-13 02:15) [8]

Удалено модератором


 
DrPass ©   (2007-10-13 02:26) [9]

Удалено модератором


 
Германн ©   (2007-10-13 02:51) [10]

Удалено модератором


 
arab   (2007-10-13 12:48) [11]

Во, блин, такую тему зафлудили...

Вот у меня получилось отобразить арабский под кодовой странице 1256 на голой виртуальной машине, где нет поддержки арабского. Только отображает реверсивно.

Но странность в том, что у клиента отображаютья местами знаки вопросов.

В чём же может быть проблема???

Помогите, пожалуйста!!!


 
Anatoly Podgoretsky ©   (2007-10-13 13:17) [12]

Это означает, что часть символов невозможно превратить в 1256, не арабские (из 1256) и не английские. Это нормальное поведение.
Хочешь нормальную работу - переходи на Юникод


 
arab   (2007-10-13 13:38) [13]

А можно функцию перекодировки в Юникод?


 
Anatoly Podgoretsky ©   (2007-10-13 13:47) [14]

А зачем тебе перекодировать, то что у тебя и так в Юникод - widestring это и есть Юникод, а если из строки, то обратная функция MultiByteToWideChar или если локализация для не Юникод программ совпадает, то S := WS


 
arab   (2007-10-13 15:04) [15]


> Anatoly Podgoretsky


Ну вот конкретный мой жалкий пример:
есть база Access, поле с арабскими строками
Как мне их отображать в компонентах (cxGrid, Button, Label etc)? Какой Font и CharSet установить или как конвертировать?

Я, как уже писал, использую ф-ию WideStringToString + CharSet = ARABIC_CHARSET + Font.Name = Tahoma.
Как следствие, у меня всё хорошо отображается, а у клиента - нет (((

Помогите, пожалуйста!


 
Anatoly Podgoretsky ©   (2007-10-13 15:50) [16]

> arab  (13.10.2007 15:04:15)  [15]

Используй Юникод компонент и ничего не надо конвертировать.


 
Desdechado ©   (2007-10-13 16:01) [17]

> А можно функцию перекодировки в Юникод?
Тебе уже сказали, что VCL не поддерживает юникод. Используй TNT unicode controls Игорь Шевченко ©   (12.10.07 15:40) [1]



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.034 c
2-1212122243
кот
2008-05-30 08:37
2008.06.29
Числовое значение символа.


2-1212256392
Wildyt
2008-05-31 21:53
2008.06.29
Дан файл, состоящий из чисел


2-1212386391
m
2008-06-02 09:59
2008.06.29
как залогиниться на сайт


2-1212144201
n_sch
2008-05-30 14:43
2008.06.29
Выборка (поиск) необходимых строк в текстовом файле (макете)


2-1212434898
Jeqa
2008-06-02 23:28
2008.06.29
учет





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский