Форум » Для флейма » Научите работать с UTF-8 pls » Ответить

Научите работать с UTF-8 pls

SadStar2018: Хотя бы читать текстовый файл в формате UTF-8. На форуме и в дистре Харбор+Минигуи не нашел ничего подходящего.

Ответов - 6

Pasha: Можно просто использовать функции: HB_STRTOUTF8 HB_UTF8TOSTR

Andrey: Смотри пример DBF_to_PostgreSQL на https://abonent4.ru/minigui/ Чтение из базы и запись в таблицу PostgreSQL

SergKis: SadStar2018 пишет Хотя бы читать текстовый файл в формате UTF-8. [pre2] FUNC IsUtf8( cFile ) LOCAL lRet := .F. LOCAL cBom := chr(239)+chr(187)+chr(191) LOCAL nLen := Len(cBom) LOCAL cBuf := space(nLen) LOCAL hFil := fOpen(cFile, 2) If hFil > 0 fRead (hFil, @cBuf, nLen) fClose(hFil) lRet := cBom == cBuf EndIf RETURN lRet FUNC myRead( cFile ) LOCAL cBuf := '' LOCAL cBom := chr(239)+chr(187)+chr(191) LOCAL nLen := Len(cBom) If file(cFile) cBuf := hb_MemoRead(cFile) If left(cBuf, nLen) == cBom cBuf := hb_Utf8ToStr(subs(cBuf, nLen + 1)) EndIf EndIf RETURN cBuf FUNC myWrite( cFile, cValue, lUtf8 ) LOCAL cBuf LOCAL cBom := chr(239)+chr(187)+chr(191) If ! empty(lUtf8) cValue := cBom + hb_StrToUtf8(cValue) EndIf RETURN hb_MemoWrit(cFile, cValue) [/pre2]


Петр: SergKis пишет: If left(cBuf, nLen) == cBom Проще использовать встроенную функцию hb_StrIsUTF8(cBuf)

SergKis: Петр пишет Проще использовать встроенную функцию hb_StrIsUTF8(cBuf) Хорошо что добавили , в hb 2.0 не было

SergKis: Петр пишет Проще использовать встроенную функцию hb_StrIsUTF8(cBuf) Может есть функция ( как hb_ps() типа hb_BomUtf8() ) для BOM Utf8 вместо chr(239)+chr(187)+chr(191) ?



полная версия страницы