:: Не фоксом единым
Re: UTF-8 to 1251
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
В VFP возможностей для конвертации поболе будет, нежели в FPD. А мне надо было сделать конвертацию средствами именно FPD.
Ratings: 0 negative/0 positive
Re: UTF-8 to 1251
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
h.i.a.
В итоге получилось такое решение:
text_1251=STRCONV(STRCONV(text_utf8,11),2)
А зачем внешний STRCONV(... ,2)? У тебя в тексте ещё и японские иероглифы были, что-ли
В кириллице (в любых её CP) нет double-byte кодированных символов...


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: UTF-8 to 1251
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
(Про double-byte, DBCS)
Почему-то преобразование ASCII-->DBCS символа "пробел":
? ASC(STRCONV(SPACE(1),1)) && пробел преобразуется в CHR(63)="?"
и обратное преобразование пробел не восстанавливает, естественно...
? ASC(STRCONV(STRCONV(SPACE(1),1),2)) && CHR(63)="?"
Ratings: 0 negative/0 positive
Re: UTF-8 to 1251
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006


:al:







Исправлено 2 раз(а). Последнее : Simple777, 17.10.16 09:45
Ratings: 0 negative/0 positive
Re: UTF-8 to 1251
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Ещё раз:
Так происходит потому что русский язык не нуждается в применении этого преобразования. А чтобы посмотреть как оно для японского или китайского будет - укажи соответствующий LocaleID. Например
? 0h + STRCONV(" ", 1, 1041)
? 0h + STRCONV(STRCONV(" ", 1, 1041), 2, 1041)

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


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: UTF-8 to 1251
h.i.a.

Сообщений: 4002
Откуда: Мурманск/Спб/Мск
Дата регистрации: 18.11.2005
Igor Korolyov
h.i.a.
В итоге получилось такое решение:
text_1251=STRCONV(STRCONV(text_utf8,11),2)
А зачем внешний STRCONV(... ,2)? У тебя в тексте ещё и японские иероглифы были, что-ли
В кириллице (в любых её CP) нет double-byte кодированных символов...
В кириллице может и не было, а вот в том логе текст хранился по два байта на букву и помогло только такое сочетание.


------------------
Ratings: 0 negative/0 positive
Re: UTF-8 to 1251
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Игорь, т.е. это нормально, что:
? 0h + STRCONV(" ", 1, 1049) && 0h3F = "?" "? используется для тех символов, которые не удалось корректно перевести из одной CP в другую."

причем
? 0h + STRCONV(STRCONV(" ", 1, 1041), 2, 1041) && 0h20 1041-0x411 (Jap?) нет в русском хелпе
? 0h + STRCONV(STRCONV(" ", 1, 1049), 2, 1049) && 0h3F 1049-0x419 - Комментарий переводчика: Данная функция поддерживает также идентификатор: 1049 - Russia (Русский), не указанный в данной Таблице
Ratings: 0 negative/0 positive
Re: UTF-8 to 1251
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Ну напиши в MS что у них косяк в подсистеме интернационализации (сомневаюсь что он чисто в фоксе - скорее всего и прямые вызовы ВинАПИ точно так же сработают). Они, я полагаю, ответят тебе так же как и я - назачем ты применяешь функции, которые применять не требуется?
CP1251 не является DBCS, к ней не применимы функции работающие с DBCS (они бессмысленны, а в данном случае ещё и ошибочно работают).


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: UTF-8 to 1251
S-type

Сообщений: 2969
Дата регистрации: 24.04.2004
Мысли в слух: а почему тема в разделе "Не фоксом единым"? Может, её надо перенести "куда надо"?
Ratings: 0 negative/0 positive
Re: UTF-8 to 1251
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
А потому, что не было вначале ясности, возможно ли решить поставленную задачу средствами FPD.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 8 (Гостей: 8)

© 2000-2024 Fox Club 
Яндекс.Метрика