İki görünüşte aynı CSV dosyalarını, tek işleri

4 Cevap php

5.3 php güncelledikten sonra bizim sistemlerinden biri ilginç bir hata geliştirdi. Bu csv dosyaları ayrıştırır ve ilk adımı onlar onaylamadan önce bitti kontrol yüklediğiniz kullanıcı ne göstermektir.

Ancak biz bazı dosyalar yüklemek bir hata haline çalıştırmak, ama okumak değildir. Biz bu dosyalardan veri alırsak garip şey kopyalayıp notepad yapıştırın ve bir olarak kaydetmek, olduğunu. Csv ince upload olacaktır dosya.

Benim ilk düşünce belki özel bir program CSV dosyalarını oluşturmak insanlarla ilgili bir şey oldu? Ben (bu aynı verileri içeriyor olsa bile) çalışmıyor biri biz ondan kopyalama ve yapıştırma bir daha biraz daha küçük olduğunu fark ettim.

Herhangi bir yardım büyük takdir.

4 Cevap

Bir Carriage Return + linefeeds vardır ve diğer tek Hattı beslemeleri var gibi geliyor (ya da carraige döner mi?)

O ya da farklı bir kodlama vardır ya: ASCII, UTF-16 karşı

CSV dosyaları aynı kodlama mı?

Belki bazı başında UTF-8 BOM var, ya diğerleri UTF-16 gibi bir şey vardır.

evil biri sadece LF kullanabilirsiniz, ve good CR + LF - Ya, karakterleri bitiş hattında bir fark olabilir.

Dosyalar aynı görünüyor, ama farklı boyutlarda ise, bu satır karakterleri dosya arasında farklı olabilir.

Not Defteri'nde başka bir metin editörü bazı şeklinde dosyaları açabilir (örneğin, Notepad++) bu onaylamak için

Dosya kodlamasını kontrol edin. Not Defteri varsayılan ANSI charset tasarruf edilir. Excel bir CSV, ANSI alanlarını ayrıştırmak değil, başka, UTF8 olacağını zaman farkettim. Virgül dahil ile UTF8 dosyası, o, bütün bir alan oldu. Ben ANSI olarak kaydedilen yalnızca Excel, CSV ayrıştırma. Benzer bir şey PHP ile oluyor olabilir.

Düzenleme: Bu durum ortaya çıkarsa, size gelen CSV dosyalarını "sterilize" için bir prosedür uygulamak. Gerçekte, PHP sadece kopyalayarak ve ardından yapıştırarak edildi seversiniz. Eğer istemci dosya yükleme ile ilgili ise belirli bir kodlama üzerinde ısrar etmek zor olacak, ancak, gelen verileri dönüştürmek gerekir.