Som besökare på Hamsterpaj samtycker du till användandet av s.k. cookies för att förbättra din upplevelse hos oss. Jag förstår, ta bort denna ruta!
Annons

C++ åäö?

Skapad av Borttagen, 2011-05-11 20:25 i Webbutveckling & Programmering

3 994
9 inlägg
0 poäng
Grepolis
Visningsbild
Hjälte 1 384 inlägg
0
Nu är det så att jag sitter och läser en bok om c++ här och behöver använda åäö då jag inte orkar översätta allt..detta är endå bara en "övning" eller vad man ska kalla det..inget jag ska försöka sälja eller dylikt :P
hur som helst orkar jag inte använda x86 osv

Kopierade detta inlägg från ett forum
Men den där koden funkar inte..finns det något annat sätt? förutom just den koden eller {x86 osv :P

Jag har windows 7 64 bit om det spelar någon roll
Det där med font och det funkar men då måste ju alla göra det varje gång :(

Visa spoiler
Denna fråga borde kanske läggas till i FAQ?

Jag vet tyvärr ingen snygg lösning på detta problem som fungerar överallt. Visserligen kan man använda alternativa konsoller i Windows som t ex bash, men då måste ju också alla andra personer som man vill ska kunna köra programmet ha det.

Här är en liten sammanfattning jag skrev ihop:

Anledningen till att åäöÅÄÖ (och alla andra "udda" tecken som é, ü, osv) inte ser rätt ut i konsollen, beror på att den som standard är satt till OEM-850 medans allt annat kör Windows-1252 (Latin I). Dessa är inte helt kompatibla då vissa tecken har helt olika koder.

Det finns två sätt att lösa det på, fixa koden eller fixa konsollen.

Lösning 1: (Fixa koden)

Byt ut alla tecken (alternativt använda t ex UltraEdit och köra ANSI-to-OEM):

å = x86
ä = x84
ö = x94
Å = x8F
Ä = x8E
Ö = x99

T ex:
printf("x86x84x94x8Fx8Ex99
"); // skriver ut åäöÅÄÖ

Men det är inte alltid detta fungerar så bra; för om man t ex sparar text till en fil och öppnar den med notepad, så ser alla åäöÅÄÖ ut som †„”Ž™. Det går dock att fixa genom att sätta fonten till Terminal.
Knivigare blir det om det är andra (Windows-)program som ska öppna filen, t ex om det är en lista över filer (som en m3u-playlist).

Lösning 2: (Fixa konsollen)

Högerklicka på titelraden för konsollfönstret, välj Properties/Egenskaper.
Gå till Font, sätt den till "Lucida Console", tryck OK och välj att det ska gälla alla fönster.

Lösning 2a: (Fungerar endast i WinNT/2K/XP)
Lägg till i din kod:
#include <windows.h>

och lägg till detta i början av main:
SetConsoleOutputCP(1252);

Lösning 2b:
Skriv i konsollen: (detta måste göras varje gång du startar en ny konsoll, men det går att lösa genom att skapa en genväg till "cmd.exe /c chcp 1252")

Om du kör WinNT/2K/XP:
chcp 1252

Om du kör Win9X:
mode con cp select=1252


Dock så fungerar varken 2a eller 2b särskilt bra om man inte har satt fonten till Lucida Console.

Trolololo

Är reklamen ivägen? Logga in eller registrera dig så försvinner den!

Christley
Visningsbild
P -1322 Bandhagen Hjälte 6 449 inlägg
0
du måste ha backslash före koden

being skinny with abs is like a fat bitch with big tits - it doesn't count

Grepolis
Visningsbild
Hjälte 1 384 inlägg
Trådskapare
0

Svar till Christley [Gå till post]:
Oj jag menade x86
Det kommer jag aldrig kommma ihåg typ :/

Trolololo

Christley
Visningsbild
P -1322 Bandhagen Hjälte 6 449 inlägg
0

Svar till Grepolis [Gå till post]:
därför jag sa åt dig att skriva programmet på engelska. det är mycket enklare

being skinny with abs is like a fat bitch with big tits - it doesn't count

Grepolis
Visningsbild
Hjälte 1 384 inlägg
Trådskapare
0

Svar till Christley [Gå till post]:
Men min bok jag har är på svenska och jag orkar inte sitta och försöka översätta/google translate när det bara är liksom skriva av koden och kolla typ :P
Men senare kommer jag använda engelska..men kan inte så bra ännu ^^

Trolololo

Christley
Visningsbild
P -1322 Bandhagen Hjälte 6 449 inlägg
0

Svar till Grepolis [Gå till post]:
då får du lära dig koderna, eller skriva typ onska eller ata

being skinny with abs is like a fat bitch with big tits - it doesn't count

Raz
Visningsbild
P 31 Hjälte 2 733 inlägg
0
Skriv då helt enkelt aa istället för å, ae istället för ä och oe istället för ö om du inte orkar översätta (eller a istället för å, a för ä och o för ö).

Förresten så använder sig Hamsterpaj sig av stripslashes(); som tar bort \, så om du vill skriva ett \ måste du ha två stycken av dem, \\.

\x52\x61\x7A ftw.

Adieu

Grepolis
Visningsbild
Hjälte 1 384 inlägg
Trådskapare
0

Svar till Raz [Gå till post]:
LoL :p

Trolololo

Peter_den_bra
Visningsbild
Hjälte 121 inlägg
0
Jag kan skriva åäö i C++ utan att göra något speciellt. Men detta är med gcc på linux. Kanske kan du göra någon inställning så att du använder UTF-8 eller något?

Det är inte fel att ha fel.


Forum » Datorer & IT » Webbutveckling & Programmering » C++ åäö?

Ansvariga ordningsvakter:

Användare som läser i den här tråden just nu

1 utloggad

Skriv ett nytt inlägg

Hej! Innan du skriver om ett potentiellt problem så vill vi påminna dig om att du faktiskt inte är ensam. Du är inte onormal och världen kommer inte att gå under, vi lovar! Så slappna av och gilla livet i några minuter - känns det fortfarande hemskt? Skriv gärna ner dina tankar och frågor, vi älskar att hjälpa just dig!

Den här tråden är äldre än Rojks drömtjej!

Det senaste inlägget i den här tråden skrevs för över tre månader sedan. Är du säker på att du vill återuppliva diskussionen? Har du något vettigt att tillföra eller passar din fråga i en ny tråd? Onödiga återupplivningar kommer att låsas så tänk efter en extra gång!

Hjälp

Det här är en hjälpruta

Här får du korta tips och förklaringar om forumet. Välj kapitel i rullningslisten här ovanför.

Rutan uppdateras automagiskt

När du använder funktioner i forumet så visas bra tips här.


Annons
Annons
Annons
Annons