Toon posts:

[PHP] ASCII file naar ANSI omzetten.

Pagina: 1
Acties:
  • 206 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik krijg hier op m'n werk voor de website database gegevens aangeleverd in een ASCII CSV filetje.

de 'ö' ziet er bijv. zo: '' uit in editplus en IE.

Het liefste zou ik dus, via PHP de file converteren van ASCII naar ANSI. Liever niet met een extern progje, ivm de CMS die er in de toekomst aan komt te hangen.

Ik heb al TFS gebruikt op GoT, Google en Altavista. Het enigste wat er uit kwam is een topic op GoT die Rawurlencode gebruikt, maar daar heb ik nog niets aan. Ik moet gewoon de hele file geconvert hebben naar ANSI, en niet die wazige % codes erin.

Weet iemand of en hoe dit mogelijk is?

(subtiele hints mogen, /me is geen n00b)

  • Mithrandir
  • Registratie: Januari 2001
  • Laatst online: 16-09 21:52
Hoe zien ze eruit in Notepad?? Misschien kun je iets doen met 't vervangen van bepaalde strings ofzo :)

(dit was geen wazige tip subtiele hint, * Mithrandir weet 't gewoon niet beter uit te leggen :+ )

Verbouwing


Verwijderd

Topicstarter
Op dinsdag 30 oktober 2001 20:12 schreef DinoRaptor het volgende:
Hoe zien ze eruit in Notepad?? Misschien kun je iets doen met 't vervangen van bepaalde strings ofzo :)

(dit was geen wazige tip subtiele hint, /me weet 't gewoon niet beter uit te leggen :+ )
ok da's de prutser methode :P
/me zoekt de profi methode ;)

  • Mithrandir
  • Registratie: Januari 2001
  • Laatst online: 16-09 21:52
Op dinsdag 30 oktober 2001 20:51 schreef Razor_Blade het volgende:

[..]

ok da's de prutser methode :P
/me zoekt de profi methode ;)
Jij zoekt een methode, dus ik geef jouw er een. Niet zo moelijk doen. In deze tijd had je 't makkelijk kunnen proggen. (nee, d'r is geen functie voor dacht * Mithrandir :D)

Verbouwing


  • Erik Jan
  • Registratie: Juni 1999
  • Niet online

Erik Jan

Langzaam en zeker

Men rippe een ASCII & Extended ASCII tabel van:
http://www.asciitable.com/

Men rippe een ANSI tabel van:
http://www.hclrss.demon.co.uk/demos/ansi.html

En bouwt daarmee je eigen ASCII -> ANSI array :)
Een hint:
PHP:
1
2
3
4
<?
$CnvArray = Array("148" => 246);
/* ASCII ö naar ANSI ö */
?>

En dan alle chars met ord() en chr() omzetten naar ANSI, hiermee:
PHP:
1
2
3
4
<?
Eval("\$AnsiValue = \$CnvArray[\"" . Ord($OldChar) . "];");
$NewChar = Chr($AnsiValue);
?>

Ik weet niet of het werkt, ik heb er zelf nooit mee gewerkt. Maar gezien die 2 tables lijkt het me logisch. Verder zou ik ff zoeken naar iemand die al die tekens al heeft uitgezocht...

EJ

This can no longer be ignored.


Verwijderd

Topicstarter
Op dinsdag 30 oktober 2001 21:18 schreef Erik Jan het volgende:
Men rippe een ASCII & Extended ASCII tabel van:
http://www.asciitable.com/

Men rippe een ANSI tabel van:
http://www.hclrss.demon.co.uk/demos/ansi.html

En bouwt daarmee je eigen ASCII -> ANSI array :)
Een hint:
PHP:
1
2
3
4
<?
$CnvArray = Array("148" => 246);
/* ASCII ö naar ANSI ö */
?>

En dan alle chars met ord() en chr() omzetten naar ANSI, hiermee:
PHP:
1
2
3
4
<?
Eval("\$AnsiValue = \$CnvArray[\"" . Ord($OldChar) . "];");
$NewChar = Chr($AnsiValue);
?>

Ik weet niet of het werkt, ik heb er zelf nooit mee gewerkt. Maar gezien die 2 tables lijkt het me logisch. Verder zou ik ff zoeken naar iemand die al die tekens al heeft uitgezocht...

EJ
Thx! daar ga ik morgen eens meer rommelen!

Verwijderd

Topicstarter
Ik heb uiteindelijk deze functie geschreven. Die voldoet voor mij.

Ik heb em ook op php.net gepost onder ORD. hopen dat ze em er op zetten :Y)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?
function asciitoansi($string)
{
$asciiarray[] = 142;    $ansiarray[] = 196; //    Ä    
$asciiarray[] = 143;    $ansiarray[] = 197; //    Å    
$asciiarray[] = 146;    $ansiarray[] = 198; //    Æ    
$asciiarray[] = 128;    $ansiarray[] = 199; //    Ç    
$asciiarray[] = 144;    $ansiarray[] = 201; //    É    
$asciiarray[] = 165;    $ansiarray[] = 209; //    Ñ    
$asciiarray[] = 153;    $ansiarray[] = 214; //    Ö    
$asciiarray[] = 154;    $ansiarray[] = 220; //    Ü    
$asciiarray[] = 133;    $ansiarray[] = 224; //    à    
$asciiarray[] = 160;    $ansiarray[] = 225; //    á    
$asciiarray[] = 131;    $ansiarray[] = 226; //    â    
$asciiarray[] = 132;    $ansiarray[] = 227; //    ã    
$asciiarray[] = 134;    $ansiarray[] = 229; //    å    
$asciiarray[] = 145;    $ansiarray[] = 230; //    æ    
$asciiarray[] = 135;    $ansiarray[] = 231; //    ç    
$asciiarray[] = 138;    $ansiarray[] = 232; //    è    
$asciiarray[] = 130;    $ansiarray[] = 233; //    é    
$asciiarray[] = 136;    $ansiarray[] = 234; //    ê    
$asciiarray[] = 137;    $ansiarray[] = 235; //    ë    
$asciiarray[] = 141;    $ansiarray[] = 236; //    ì    
$asciiarray[] = 161;    $ansiarray[] = 237; //    í    
$asciiarray[] = 140;    $ansiarray[] = 238; //    î    
$asciiarray[] = 139;    $ansiarray[] = 239; //    ï    
$asciiarray[] = 164;    $ansiarray[] = 241; //    ñ    
$asciiarray[] = 149;    $ansiarray[] = 242; //    ò    
$asciiarray[] = 162;    $ansiarray[] = 243; //    ó    
$asciiarray[] = 147;    $ansiarray[] = 244; //    ô    
$asciiarray[] = 148;    $ansiarray[] = 246; //    ö    
$asciiarray[] = 151;    $ansiarray[] = 249; //    ù    
$asciiarray[] = 163;    $ansiarray[] = 250; //    ú    
$asciiarray[] = 150;    $ansiarray[] = 251; //    û    
$asciiarray[] = 129;    $ansiarray[] = 252; //    ü    

$i = 0;
while ($i < sizeof ($asciiarray))
    {
    $string = str_replace(chr($asciiarray[$i]), chr($ansiarray[$i]), $string);
    $i++;
    }
return ($string);
}
?>

Als je meer characters wil replacen, kan je ze gewoon aan de array toevoegen.

Erik Jan : Thx again voor je reply!
Pagina: 1