Hozzászólások
-
SzerzőBejegyzés
-
Hopp, most találtam egy tök jó dolgot, ami ráadásul telepítve is van: recode.
Ebből megpróbálom kibogarászni, ami nekem kell, mert a recode parancs tök jól megy 🙂zoltan22 wrote:uzsolt wrote:Az awesome kódjába se jó beírni, mármint ott is csak az első karakterek jelennek meg, sőt, az ékezetet is tartalmazó szövegek első betűje se…Ez akkor tortenik, ha ISO kodolas van beallitva?
Nem, utf8 esetén. Iso esetén csak annyi, hogy ékezet esetén semmi nem jelenik meg.
zoltan22 wrote:uzsolt wrote:Az awesome kódjába se jó beírni, mármint ott is csak az első karakterek jelennek meg, sőt, az ékezetet is tartalmazó szövegek első betűje se…Ez akkor tortenik, ha ISO kodolas van beallitva?
Nem, utf8 esetén. Iso esetén csak annyi, hogy ékezet esetén semmi nem jelenik meg.
És miből jöttél rá? Már csak azért, hogy mi is okuljunk meg ha véletlenül valaki használja a fórum „Keresés” funkcióját, megtalálja ezt pl. hibaüzi alapján, hogyha ő is pont ilyennel szenved.
És miből jöttél rá? Már csak azért, hogy mi is okuljunk meg ha véletlenül valaki használja a fórum „Keresés” funkcióját, megtalálja ezt pl. hibaüzi alapján, hogyha ő is pont ilyennel szenved.
vizsla wrote:érdemes 1-féle kódolást használniIgen, sejtem én. Biztosan menne az utf8-cal is, csak lehet, hogy egy kicsit több időt kellene rászánni a váltásra. Arra meg lusta vagyok 🙁
Most újra szimpla iso-kódolás van, szinte már megszoktam, hogy (néha) nincs ablakcím a státusszorban 😉vizsla wrote:érdemes 1-féle kódolást használniIgen, sejtem én. Biztosan menne az utf8-cal is, csak lehet, hogy egy kicsit több időt kellene rászánni a váltásra. Arra meg lusta vagyok 🙁
Most újra szimpla iso-kódolás van, szinte már megszoktam, hogy (néha) nincs ablakcím a státusszorban 😉OK, így kiírja azt, hogy ödön, de egy nem utf-kódolású terminálon az ö betűk helyett nem dupla karaktereket kellene látnom?
Az awesome kódjába se jó beírni, mármint ott is csak az első karakterek jelennek meg, sőt, az ékezetet is tartalmazó szövegek első betűje se…OK, így kiírja azt, hogy ödön, de egy nem utf-kódolású terminálon az ö betűk helyett nem dupla karaktereket kellene látnom?
Az awesome kódjába se jó beírni, mármint ott is csak az első karakterek jelennek meg, sőt, az ékezetet is tartalmazó szövegek első betűje se…zoltan22 wrote:Valoban:
http://cairographics.org/manual/cairo-Text.html#cairo-show-textEloszor utf8-ra kellene atalakitani a szoveget. Itt van egy pelda-kodreszlet: http://www.triptico.com/software/unicode.html#converting_posix_locale_strings_into_wchar_t_(c)
Ha ezt belekakod a programba, es a draw_text-ben uft8-ra alakitod vele kirajzolas elott a karakterlancot, mukodnie kellene.
Nem megy, sajna. A példa szerintem rossz, mert egy szimpla progiba beraktam:
Code:#include
#include
#includewchar_t * locale_to_wchar(char * str)
{
wchar_t * ptr;
size_t s;/* first arg == NULL means ‘calculate needed space’ */
s = mbstowcs(NULL, str, 0);/* a size of -1 is triggered by an error in encoding; never
* happen in ISO-8859-* locales, but possible in UTF-8 */
if(s == -1)
return(NULL);/* malloc the necessary space */
if((ptr = (wchar_t *)malloc((s + 1) * sizeof(wchar_t))) == NULL)
return(NULL);
printf(„%dn”,s);/* really do it */
mbstowcs(ptr, str, 100);/* ensure NULL-termination */
ptr[s] = L”;
/* remember to free() ptr when done */
return(ptr);
}void main () {
char *str;
wchar_t *uni;setlocale(LC_ALL, „hu_HU”);
str=malloc(300);
str=”ödön”;
uni=locale_to_wchar(str);
if (uni==NULL) { printf(„nulln”); } else {printf(„%sn”,uni);}
}Kiírja, hogy 4 hosszú az ödön, de csak egy „ö” betűt nyom ki.
Az LC_ALL=…utf… nem jó, mivel ekkor valami rejtélyes ok miatt a tasklist-ekben SEMMI nem jelenik meg, még akkor se, ha nincs benne semmi fura karakter. A sima szövegdobozokba küldött szövegek jól megjelennek.
Szóval a zoltan22 által ajánlott megoldást akarnám én megvalósítani… -
SzerzőBejegyzés