Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z przepisywaniem pliku, błędne kodowanie?
timon27
post
Post #1





Grupa: Zarejestrowani
Postów: 578
Pomógł: 69
Dołączył: 15.04.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Jak w temacie.
Pomóżcie mi - nie wiem co zrobić z TYM plikiem. Próbuje go przepisać i bez przerwy wyskakują mi krzaczki. Skróciłem go do jednego słowa i dalej błędy. Opcja 'otwórz, skopiuj zawartość do nowego dokumentu tekstowego' mnie nie satysfakcjonuje (choć działa), gdyż chciałbym konwertować takie pliki automatycznie.

Kod test.php?nazwa=111:
Kod
<?php
$filename = "test.csv";
$pom=file($filename);

$nazwa=$_GET['nazwa'];

$fr = fopen("test_$nazwa.txt", "w");
fwrite($fr,"Hello $pom[0]");
fclose($fr);

echo("<a href=\"test_$nazwa.txt\">test_$nazwa.txt</a><br>");
?>


Kod test.csv:
Kod
World


Wynik test_111.txt:
Kod
效汬World


Dodatkowo ten plik (test.csv) w hexie:
Kod
FF FE 57 00 6F 00 72 00 6C 00 64 00

Czyli dwa dodatkowe znaki na początku, i co druga dodatkowa 'spacja',

Ten post edytował timon27 31.12.2009, 11:45:31
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




BOM?
Go to the top of the page
+Quote Post
wookieb
post
Post #3





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat(erix @ 31.12.2009, 11:48:17 ) *
BOM?


Nie ma to jak treściwa odpowiedź...
Chodzi oczywiście o BOM w plikach o kodowaniu utf-8
Problem polegał na czymś innym. Plik csv był zakodowany w utf-16 a powinien w utf-8. Przekonwertuj na utf-8.

Ewentualnie zassaj http://wookieb.pl/test.csv

Ten post edytował wookieb 31.12.2009, 12:04:08
Go to the top of the page
+Quote Post
timon27
post
Post #4





Grupa: Zarejestrowani
Postów: 578
Pomógł: 69
Dołączył: 15.04.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


hmm spróbowałem z:
Kod
$pom[0] = mb_convert_encoding($pom[0], "UTF-8", "UTF-16");

i wyszło mi:
Kod
Hello �orld

czyli tylko na początku pliku jest błąd, a to da się obejść jakimś wyjątkiem.

thx
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 04:24