🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.c
13 messages
13 total messages Started by M.M. Fri, 08 Apr 2016 16:57
utf8 to utf16
#308375
Author: M.M.
Date: Fri, 08 Apr 2016 16:57
14 lines
1519 bytes
Czym najlepiej w C++ konwertować utf8 do utf16? 
Że QT potrafi i jest przenośne - to wiem. Ale
jakby miało być coś innego niż QT?

To się u mnie nawet nie kompiluje:
http://en.cppreference.com/w/cpp/locale/codecvt_utf8

Boost... chyba mógłby być... chociaż nie wiem, nie
znam. Ciekawe na jakich platformach naprawdę działa i 
kompiluje się.

Coś jeszcze poza qt i boostem?

Pozdrawiam
Re: utf8 to utf16
#308376
Author: Jordan Szubert
Date: Fri, 08 Apr 2016 23:32
15 lines
1326 bytes
Dnia 08-04-2016 o 18:57:00 M.M. <mmarszik@gmail.com> napisał(a):

> Czym najlepiej w C++ konwertować utf8 do utf16?
> Że QT potrafi i jest przenośne - to wiem. Ale
> jakby miało być coś innego niż QT?

akurat konwersja utf8<-->utf16 powinna być na tyle prosta, że nie jestem  
przekonany czy ciągnięcie jakiejś biblioteki tylko do tego ma sens

https://en.wikipedia.org/wiki/UTF-8#Description
https://en.wikipedia.org/wiki/UTF-16#Description

-- 
Jordan Szubert
skype:jordanszubert
Re: utf8 to utf16
#308377
Author: M.M.
Date: Sat, 09 Apr 2016 08:37
25 lines
2420 bytes
On Saturday, April 9, 2016 at 1:33:00 AM UTC+2, Jordan Szubert wrote:
> Dnia 08-04-2016 o 18:57:00 M.M. <mmarszik@gmail.com> napisał(a):
> 
> > Czym najlepiej w C++ konwertować utf8 do utf16?
> > Że QT potrafi i jest przenośne - to wiem. Ale
> > jakby miało być coś innego niż QT?
> 
> akurat konwersja utf8<-->utf16 powinna być na tyle prosta, że nie jestem  
> przekonany czy ciągnięcie jakiejś biblioteki tylko do tego ma sens
> 
> https://en.wikipedia.org/wiki/UTF-8#Description
> https://en.wikipedia.org/wiki/UTF-16#Description
> 

Właśnie robię coś na tyle prostego, że zapragnąłem w ogóle wywalić
wszystko, poza standardową biblioteką. Niestety konwersja UTF nie
działa w moim środowisku, więc chyba, jak zwykle, użyję QT.

Proponujesz napisać samodzielnie konwersję utf. Może źle zadałem
pytanie. Po tym jak zrobię konwersję, to się okaże, że coś innego
także nie działa na utf16. Więc mimo prostoty konwersji, wolałbym 
bibliotekę, która ogólnie wspiera locale. Chyba zdecyduję się na 
starą dobrą (bardzo dobrą!) bibliotekę QT.

Pozdrawiam
Re: utf8 to utf16
#308378
Author: Piotr Wyderski
Date: Mon, 11 Apr 2016 10:30
15 lines
1520 bytes
M.M. wrote:

> Proponujesz napisać samodzielnie konwersję utf.

I dobrze proponuje. Konwersja między UTFami jest stosunkowo prosta,
sam zrezygnowałem z pomocy bibliotek w tym zakresie.

 > Po tym jak zrobię konwersję, to się okaże, że coś innego
 > także nie działa na utf16. Więc mimo prostoty konwersji, wolałbym
 > bibliotekę, która ogólnie wspiera locale.

No ale chcesz robić konwersje *między* UTFami, do czego nie
potrzeba lokali, czy *na/z* UTF, co jest całkiem innym zadaniem?

	Pozdrawiam, Piotr
Re: utf8 to utf16
#308381
Author: Wiktor S.
Date: Mon, 11 Apr 2016 11:24
12 lines
1233 bytes
> akurat konwersja utf8<-->utf16 powinna być na tyle prosta, że nie
> jestem przekonany czy ciągnięcie jakiejś biblioteki tylko do tego ma
> sens

Prosta, ale łatwo zrobić to źle.

Prawidłowo robi się to w kolejności UTF8 -> UTF32 -> UTF16, i odwrotnie 
UTF16 -> UTF32 -> UTF8.


-- 
Wiktor S.
Re: utf8 to utf16
#308380
Author: Piotr Wyderski
Date: Mon, 11 Apr 2016 11:27
8 lines
1154 bytes
Wiktor S. wrote:

> Prawidłowo robi się to w kolejności UTF8 -> UTF32 -> UTF16, i odwrotnie
> UTF16 -> UTF32 -> UTF8.

Owszem, ale na poziomie pojedynczego codepointu, a nie całego stringa.

	Pozdrawiam, Piotr
Re: utf8 to utf16
#308379
Author: M.M.
Date: Mon, 11 Apr 2016 14:38
27 lines
2551 bytes
On Monday, April 11, 2016 at 12:30:14 PM UTC+2, Piotr Wyderski wrote:
> M.M. wrote:
> 
> > Proponujesz napisać samodzielnie konwersję utf.
> 
> I dobrze proponuje. Konwersja między UTFami jest stosunkowo prosta,
> sam zrezygnowałem z pomocy bibliotek w tym zakresie.
> 
>  > Po tym jak zrobię konwersję, to się okaże, że coś innego
>  > także nie działa na utf16. Więc mimo prostoty konwersji, wolałbym
>  > bibliotekę, która ogólnie wspiera locale.
> 
> No ale chcesz robić konwersje *między* UTFami, do czego nie
> potrzeba lokali, czy *na/z* UTF, co jest całkiem innym zadaniem?
> 
> 	Pozdrawiam, Piotr

Po zastanowieniu się, doszedłem do wniosku, że jest właśnie tak
jak piszesz, czyli że konwersja nie jest aż taka straszna. Jednak
nie potrafię przewidzieć wszystkich innych problemów jakie 
napotkam za jakiś czas. Nie wiem co będę chciał z tym stringiem
robić np. za rok. W takiej bibliotece QT jest masa gotowców.
Jeśli program oprę o QString, to mam większe prawdopodobieństwo, że w
sytuacjach nieprzewidzianych znajdę gotowca. W STLu bez dodatkowych
zabiegów nie kompiluje mi się zwykła konwersja. 

Pozdrawiam
Re: utf8 to utf16
#308382
Author: JDX
Date: Fri, 29 Apr 2016 20:17
6 lines
1214 bytes
On 2016-04-08 18:57, M.M. wrote:
> Czym najlepiej w C++ konwertować utf8 do utf16? 
> Że QT potrafi i jest przenośne - to wiem. Ale
> jakby miało być coś innego niż QT?
Może sięgnąć do starego, dobrego C (bez plusów) i użyć iconv-a:
http://www.gnu.org/software/libiconv/?
Re: utf8 to utf16
#308383
Author: M.M.
Date: Fri, 29 Apr 2016 20:24
10 lines
1689 bytes
On Friday, April 29, 2016 at 10:17:33 PM UTC+2, JDX wrote:
> On 2016-04-08 18:57, M.M. wrote:
> > Czym najlepiej w C++ konwertować utf8 do utf16? 
> > Że QT potrafi i jest przenośne - to wiem. Ale
> > jakby miało być coś innego niż QT?
> Może sięgnąć do starego, dobrego C (bez plusów) i użyć iconv-a:
> http://www.gnu.org/software/libiconv/?

Dziękuję, popatrzę.
Pozdrawiam
Re: utf8 to utf16
#308384
Author: JDX
Date: Fri, 29 Apr 2016 20:37
12 lines
1589 bytes
On 2016-04-29 22:24, M.M. wrote:
> On Friday, April 29, 2016 at 10:17:33 PM UTC+2, JDX wrote:
>> On 2016-04-08 18:57, M.M. wrote:
>>> Czym najlepiej w C++ konwertować utf8 do utf16? 
>>> Że QT potrafi i jest przenośne - to wiem. Ale
>>> jakby miało być coś innego niż QT?
>> Może sięgnąć do starego, dobrego C (bez plusów) i użyć iconv-a:
>> http://www.gnu.org/software/libiconv/?
> 
> Dziękuję, popatrzę.
BTW. A czy QT przypadkiem nie używa (bądź może używać) „pod spodem”
właśnie iconv-a do tego typu konwersji?
Re: utf8 to utf16
#308385
Author: M.M.
Date: Sat, 30 Apr 2016 06:54
17 lines
2132 bytes
On Friday, April 29, 2016 at 10:37:40 PM UTC+2, JDX wrote:
> On 2016-04-29 22:24, M.M. wrote:
> > On Friday, April 29, 2016 at 10:17:33 PM UTC+2, JDX wrote:
> >> On 2016-04-08 18:57, M.M. wrote:
> >>> Czym najlepiej w C++ konwertować utf8 do utf16? 
> >>> Że QT potrafi i jest przenośne - to wiem. Ale
> >>> jakby miało być coś innego niż QT?
> >> Może sięgnąć do starego, dobrego C (bez plusów) i użyć iconv-a:
> >> http://www.gnu.org/software/libiconv/?
> > 
> > Dziękuję, popatrzę.
> BTW. A czy QT przypadkiem nie używa (bądź może używać) "pod spodem"
> właśnie iconv-a do tego typu konwersji?

Nie wiem, ale QT uchodzi za bibliotekę napisaną od podstaw. Jakbym
miał zgadywać, to nie.
Pozdrawiam
Re: utf8 to utf16
#308386
Author: JDX
Date: Sat, 30 Apr 2016 07:25
11 lines
1879 bytes
On 2016-04-30 08:54, M.M. wrote:
[...]
> Nie wiem, ale QT uchodzi za bibliotekę napisaną od podstaw. Jakbym
> miał zgadywać, to nie.
Rzuciłem okiem na opcje configure-a i wygląda na to, że QT chyba
rzeczywiście nie korzysta z iconv-a (albo ma go wbudowanego w źródła „na
twardo”). Co zaś się tyczy pisania od podstaw, to QT korzysta ze zlib-a,
libpng, libjpeg, PCRE, freetype-a i jeszcze jakichś innych bibliotek,
więc nie jest napisana zupełnie od podstaw. Z drugiej strony, raczej nie
ma sensu pisać od nowa bibliotekę np. do PNG, skoro od dawna istnieje
dobrze znany „standard”.
Re: utf8 to utf16
#308387
Author: M.M.
Date: Sat, 30 Apr 2016 11:02
21 lines
2575 bytes
On Saturday, April 30, 2016 at 9:25:54 AM UTC+2, JDX wrote:
> On 2016-04-30 08:54, M.M. wrote:
> [...]
> > Nie wiem, ale QT uchodzi za bibliotekę napisaną od podstaw. Jakbym
> > miał zgadywać, to nie.
> Rzuciłem okiem na opcje configure-a i wygląda na to, że QT chyba
> rzeczywiście nie korzysta z iconv-a (albo ma go wbudowanego w źródła "na
> twardo"). Co zaś się tyczy pisania od podstaw, to QT korzysta ze zlib-a,
> libpng, libjpeg, PCRE, freetype-a i jeszcze jakichś innych bibliotek,
> więc nie jest napisana zupełnie od podstaw. Z drugiej strony, raczej nie
> ma sensu pisać od nowa bibliotekę np. do PNG, skoro od dawna istnieje
> dobrze znany "standard".

Skoro zajrzałeś, to najwyraźniej tak jest. Jeśli są dobre biblioteki i 
nie mają wad prawnych, to faktycznie pisanie od nowa nie ma sensu.
Chociaż czasami dobra biblioteka może udostępniać interfejsy niezbyt
zgodne z przyjętymi konwencjami w bibliotece, a kolejna gruby wrapper 
może powodować kolejny spadek wydajności, więc o motywację do pisania 
od nowa znowu nie aż tak trudno.

Pozdrawiam
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads