12. oktober 2002 - 00:21Der er
10 kommentarer og 1 løsning
Dos prompt, notepad og æ, ø, å
Af en eller anden grund opfatter Dos skærmen og Notepad de danske bogstaver forskelligt. Jeg kan uden videre skrive æ, ø og å både i Dos skærmen og i Notepad, men hvis jeg paster noget fra Notepad over i Dos skærmen smider den gylle ind i stedet for æ, ø og å fra Notepad. Jeg tror det er Dos skærmen den er gal med. For hvis jeg f.eks. skriver til MySql fra Dos skærmen med æ, ø og å (hvor det ser OK ud) bliver det forkert når jeg senere ser det fra phpMyAdmin (dvs. fra min browser). Kender nogle til problemet?
Det er sådan set ikke en fejl, men der er tale om den ulyksalige kendsgerning, at DOS-prompten benytter sig af et tegnsæt mens langt de fleste Windows-programmer benytter sig af et andet. Den oprindelige årsag hertil fortaber sig i forhistoriens tåger (og skæld gerne Bill Gates ud over dette), men kendsgerningen er, at hvis man i DOS-prompten benytter de danske bogstaver
ÆØÅæøå
giver det ASCII-tegnkoderne
\222\235\217\221\233\206 (alle oktale)
hvorimod de samme bogstaver i et Windowsprogram giver ASCII-koderne
\306\330\305\346\370\345 (igen alle oktale)
Man er altså nødt til at beslutte, hvordan man vil gemme sine tekster (enten som Windows-tekster eller som DOS-tekster, jeg ville nok anbefale Windows-varianten). Når så disse tekster skal skrives ud i det andet miljø, må man konvertere.
Mit umiddelbare bud er, at de også konverterer. Det er så vidt jeg kan se den eneste mulighed, hvis man ønsker at vise eller indlæse ÆØÅæøå både i Windowsprogrammer og i DOS-promten - da der anvendes forskellig intern repræsentation af ÆØÅæøå i Windows og i DOS slipper man ikke udenom et eller andet sted undervejs.
men hvordan konverterer de? Jeg har prøvet at taste dine koder ind både i Dos skærmen og i Notepad ved at holde Alt-tasten ned og derefter tase dine talkoder oven for ind. Men sådan gør man åbenbart ikke i Dos prompten for den reagerer overhovedet ikke på at alt tasten er nede, men taser bare tallene direkte ind på skærmen. I Notepad virker det godt nok, men der kommer nogle helt andre tegn frem end æ, ø og å, når jeg bruger dine koder.
Som jeg også skrev ovenfor, er mine angivne koder oktale. Det skyldes, at de stammer fra et konverteringsprogram jeg har, hvor det af historiske årsager var mest praktisk at angive koderne oktalt. Eksempel: Jeg har angivet Windows Æ som 306 oktalt, dette er 198 decimalt, så hvis du i Notepad trykker ALT/0198 vil du se et Æ. Hvis du gemmer dette som en fil, og udskriver den i DOS-promten ved at skrive TYPE <fil>, vil du se pølse.
Hvis du derimod i Notepad indtaster et DOS-Æ (222 oktalt, = 146 decimalt), altså ALT/0146, vil du se pølse i Notepad, men det korrekte Æ hvis du TYPE'r filen i DOS.
(tip: Windows-lommeregneren kan omregne fra oktalt til decimalt).
I DOS-promten kan du indtaste ALT/146 og få DOS-Æ.
Har du tjekket at din "oemcp" i registreringdatabasen er sat til 850, for vi har haft et tilsvarende problem med danske specialbogstaver i navision. Det løset vi ved at ændre værdien i OEMCP fra 437 til 850. Som jeg har forstået det er OEMCP den grundlæggende codepage, dvs. tegnsæt, der bruges i systemet, selvom windows er sat til dansk.
Den letteste måde at finde værdien på er at søge i regedit på oemcp.
tak for hjælpen. Da det jo drejer sig om databasemateriale til brug for web sider, blev løsningen at kovertere til html entities. det kræver jo så at man også lægger en html entity kovertering omkring input fra brugerne, men det er ikke noget problem.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.