Array befüllen mit Unicode ab dem Wert 128
Mike©
- programmiertechnik
0 Gunnar Bittersmann0 Mike©
0 Sven Rautenberg0 Mike©
0 Ashura
Moin @ All,
ich bastle gerade an einem Tool Zeichensatz ASCII 8 Bit - Codepage 850
Die Anzeige des Unicode realisiere ich mit einem Array. Für die Range 0-127 war das nicht dramatisch, da ich nur die Range 0-31 eintippen musste.
Jetzt kommt aber die Range von 128-255. Und ehrlich gesagt, erscheint es mir müßig das alles zu tippen.
Hat jemand eine Idee wie ich die Werte des Array berechnen kann?
Hier ist der Quelltext
regds
Mike©
Hier ist der Quelltext
Nö, Mike©, leider 404.
Live long and prosper,
Gunnar
Moin Gunnar,
Hier ist der Quelltext
Nö, Mike©, leider 404.
hast vielleicht die "Zwangstrennung" erwischt :-(
Versuche es nocheinmal.
regds
Mike©
Moin!
ich bastle gerade an einem Tool Zeichensatz ASCII 8 Bit - Codepage 850
An dem Tool ist insbesondere die Begriffsvermischung verbesserungswürdig.
ASCII ist nur für 7 Bit definiert. Und der Bereich von 0 bis 31 enthält im ASCII ausschließlich nichtdruckbare Steuerzeichen.
Codepage 850 hingegen ist zwar 8 Bit, aber wirklich reine DOS-Welt und heutzutage kaum noch gebräuchlich. Deren Hauptproblem besteht darin, dass der Bereich von 0 bis 31 doppelt belegt ist - die Zeichen dort sind entweder darstellbare Grafikzeichen, oder sie haben die Steuerzeichenbedeutung aus ASCII.
Deshalb ist so eine Dopplung für den Datenaustausch absolut unbrauchbar. Und die von dir vorgeschlagene Umsetzung in Unicode sehr zweifelhaft. Denn wenn man z.B. Dezimal "2" eingibt, dann steht das in ASCII _und_ in Unicode für "STX (Start of Text" - in Codepage 850 allerdings gibt es _zusätzlich_ (und zwar nur dann, wenn das auswertende Programm das so verstehen will) die Bedeutung "ausgefüllter Smiley" - und das Unicodezeichen für diese Darstellung ist ☻.
Es besteht also das Problem, diese Zweideutigkeit ganz deutlich zu machen. Daran scheitert das Tool zur Zeit.
- Sven Rautenberg
Moin Sven,
Es besteht also das Problem, diese Zweideutigkeit ganz deutlich zu machen. Daran scheitert das Tool zur Zeit.
mal sehen, ob ich Deine Ausführungen richtig verstanden habe.
Die doppelte Belegung bezieht sich auf den Bereiche 0-31, wobei
es einmal ein Grafikzeichen ist (CP 850) oder ein Steuerzeichen (ASCII) ist.
Es geht also darum kenntlich zu machen, das das angezeigte Zeichen CP 850 ist und die Erklärung "Steuerzeichen" sich auf ASCII 7-Bit bezieht?
regds
Mike©
Hallo Mike©.
Die Anzeige des Unicode realisiere ich mit einem Array. Für die Range 0-127 war das nicht dramatisch, da ich nur die Range 0-31 eintippen musste.
Jetzt kommt aber die Range von 128-255. Und ehrlich gesagt, erscheint es mir müßig das alles zu tippen.
Kommt es mir nur so vor, oder hast du die Lösung bereits mehrfach selbst genannt?
Einen schönen Samstag noch.
Gruß, Ashura
Moin Ashura,
Jetzt kommt aber die Range von 128-255. Und ehrlich gesagt, erscheint es mir müßig das alles zu tippen.
Kommt es mir nur so vor, oder hast du die Lösung bereits mehrfach selbst genannt?
entweder stehe ich auf dem Schlauch, oder Du hast mich falsch verstanden.
das Array[128] bis Array[255] soll die dazugehörigen Unicodes enthalten. Diese müßte ich alle eintippen. Ich wollte wissen, ob ich diese Unicodewerte berechnen kann.
regds
Mike©
Hallo Mike©.
das Array[128] bis Array[255] soll die dazugehörigen Unicodes enthalten. Diese müßte ich alle eintippen. Ich wollte wissen, ob ich diese Unicodewerte berechnen kann.
Also so in etwa?
header('content-type: text/plain; charset=utf-8');
$arr_unicode = range('128', '255');
foreach ($arr_unicode as $str_key => $str_value) {
echo 'Dezimal: '.$str_value."\n".
'Hexadezimal: '.dechex($str_value)."\n".
'Binär: '.decbin($str_value)."\n".
'Oktal: '.decoct($str_value)."\n".
'Entity: '.htmlentities(chr($str_value))."\n".
'Unicode: &#'.$str_value.';'."\n".
'Zeichen: '.chr($str_value)."\n\n";
}
Einen schönen Sonntag noch.
Gruß, Ashura
Moin Ashura,
Also so in etwa?
header('content-type: text/plain; charset=utf-8');
$arr_unicode = range('128', '255');
foreach ($arr_unicode as $str_key => $str_value) {
echo 'Dezimal: '.$str_value."\n".
'Hexadezimal: '.dechex($str_value)."\n".
'Binär: '.decbin($str_value)."\n".
'Oktal: '.decoct($str_value)."\n".
'Entity: '.htmlentities(chr($str_value))."\n".
'Unicode: &#'.$str_value.';'."\n".
'Zeichen: '.chr($str_value)."\n\n";
}
leider [nicht](http://magicmike.dnip.net/tools/ashura.php)
Für CP 850 ist der Unicode nicht gleich dem dezimalen Wert.
Also dezimal 128 != unicode €
Dezimal 129 == Ç
regds
Mike©
--
Freunde kommen und gehen. Feinde sammeln sich an.
![](http://twins.sumsebienchen.de/sonnenschein.jpg)