php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
georgische und russische Texte / Zeichensätze ins ASCII-Format konvertieren


 
scanline
25-01-2007, 09:10 
 
Hallo,
wie bekomme ich in Word gelieferte georgische bzw. russische (kyrillische) Texte in HTML umgesetzt? Bzw. Gitb es eine Möglichkeit, dem Kunden ein Script zur Verfügung zu stellen, in das er (mit seiner Tastatur(belegung)) seinen fremdländischen Text eingibt, und dieser in den entsprechend richtigen ASCII-Zeichensatz konvertiertwird, der mir wiederum zur Verfügung steht?
Das wäre ideal!!


Schöne Grüße
Micha

 
Abraxax
25-01-2007, 09:32 
 
das wird so nicht funktionieren ...
http://de.wikipedia.org/wiki/ASCII

was du brauchst ist UTF

 
Slava
25-01-2007, 12:14 
 
hi!
es liegt an charset , der für verschiedenen sprachen auch anderes belegt ist.
aus diesem grund lohnt es sich mit utf-8 zu arbeiten und bei bedarf aus utf-8 ein locale ASCII text umwandeln.

da es um russisch handelt, dann kann ich dir 2 functionen empfehlen, die umwandlun von utf-8 in russischer locale ASCII umwandelt

function cp1251_to_utf8($s){
$t="";
$c209 = chr(209); $c208 = chr(208); $c129 = chr(129);
for($i=0; $i<strlen($s); $i++){
$c=ord($s[$i]);
if ($c>=192 and $c<=239) $t.=$c208.chr($c-48);
elseif ($c>239) $t.=$c209.chr($c-112);
elseif ($c==184) $t.=$c209.$c209;
elseif ($c==168) $t.=$c208.$c129;
else $t.=$s[$i];
}
return $t;
}

function utf8_to_cp1251($s){
for ($c=0;$c<strlen($s);$c++){
$i=ord($s[$c]);
if ($i<=127) $out.=$s[$c];
if ($byte2){
$new_c2=($c1&3)*64+($i&63);
$new_c1=($c1>>2)&5;
$new_i=$new_c1*256+$new_c2;
if ($new_i==1025){
$out_i=168;
} else {
if ($new_i==1105){
$out_i=184;
} else {
$out_i=$new_i-848;
}
}
$out.=chr($out_i);
$byte2=false;
}
if (($i>>5)==6) {
$c1=$i;
$byte2=true;
}
}
return $out;
}

 
penizillin
25-01-2007, 12:30 
 
Slava: windows 1251 ist keine "lokale" ascii version. wenn überhaupt, ist es eine erweiterung von ascii und trotzdem eine eigene kodierung. zum konvertieren gibt es die bibliothek iconv (s. manual).

 
asp2php
25-01-2007, 12:56 
 
Original geschrieben von Slava
hi!
es liegt an charset , der für verschiedenen sprachen auch anderes belegt ist.
aus diesem grund lohnt es sich mit utf-8 zu arbeiten und bei bedarf aus utf-8 ein locale ASCII text umwandeln.
Warum umwandeln? Einfach bei UTF-8 lassen und auf der Website ggf. einen Link zum Download von entsprechenden Unicode-Font anbieten, und das war ja auch schon alles.

btw. von MS den Unicode-Arial z.B. kann sehr viele Sprachen darstellen und universell einsetzbar, egal ob winodws oder linux.

 
Slava
25-01-2007, 13:25 
 
Original geschrieben von penizillin
Slava: windows 1251 ist keine "lokale" ascii version. wenn überhaupt, ist es eine erweiterung von ascii und trotzdem eine eigene kodierung. zum konvertieren gibt es die bibliothek iconv (s. manual).
1) iconv und mbstring sind mir bekannt, aber diese bibliotheken werden leider nicht von jedem anbieter zur verfügung gestellt.

2)Windows-1251 oder auch als cp-1251 bekannt, ist eine stadartcodierung bei allen russischen Windows OS und entspricht localer ascii

@asp2php->
<<
Warum umwandeln? Einfach bei UTF-8 lassen und auf der Website ggf. einen Link zum Download von entsprechenden Unicode-Font anbieten, und das war ja auch schon alles.
>>
noch besser ist es keine exotische schriftarten zu benutzen :-)
utf-8 test:
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я

 
asp2php
25-01-2007, 13:35 
 
Original geschrieben von Slava
noch besser ist es keine exotische schriftarten zu benutzen :-)

wie meinste denn das?

 
penizillin
25-01-2007, 15:04 
 
Original geschrieben von Slava
utf-8 test:
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я Ё vergessen :)

 
Slava
25-01-2007, 16:33 
 
Original geschrieben von asp2php
wie meinste denn das?
ich meine, dass wie du schon gesagt hast die schriftarten müssen mehr wie möglich sprachen abdecken wie z.b.s Unicode-Arial

Original geschrieben von penizillin
Ё vergessen
o mann! das ist echt peinlich von mir
:D

<<
jetzt muss ich mir schnell etwas ausdenken!!!
ok ok ok Ok!!
>>
Ich wollte keine Ё schreiben, da ich diese Buchstabe nicht aussprechen kann
:D :D :D

 
Abraxax
25-01-2007, 16:50 
 
dann helfe ich dir .... "jó" :D

 
Slava
25-01-2007, 16:53 
 
:D :D


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:00 Uhr.