CSV dosyalarına bazı verileri aktarmaktan sorumlu bir uygulamanın bir bölümünü geliştiriyorum. Uygulama her düzeyde çok dilli yapısı nedeniyle her zaman UTF-8 kullanır. Ancak bu tür CSV dosyalarını (örneğin aksan harfleri, kiril harfleri, Yunan harfleri içeren) Excel'de açmak, benzer bir şey gösteren beklenen sonuçları elde etmez Г„/Г¤, Г–/Г¶
. Ve Excel'i açık CSV dosyasının UTF-8'de kodlandığını anlamaya nasıl zorlayacağımı bilmiyorum. Ayrıca UTF-8 BOM belirtmeyi denedim EF BB BF
, ancak Excel bunu görmezden geliyor.
Herhangi bir çözüm var mı?
PS Hangi araçlar Excel gibi davranabilir?
GÜNCELLEME
Toplumu sorunun formülasyonuyla karıştırdığımı söylemeliyim. Bu soruyu sorduğumda, bir kullanıcı için sorunsuz ve akıcı ve şeffaf bir şekilde, UTF-8 CSV dosyasını Excel'de açmanın bir yolunu istedim. Ancak, otomatik olarak yapılmasını isteyen yanlış bir formülasyon kullandım . Bu çok kafa karıştırıcı ve VBA makro otomasyonu ile çatışıyor. Bu soruların en çok takdir ettiğim iki yanıtı var: Alex'in ilk cevabı https://stackoverflow.com/a/6002338/166589 ve bu cevabı kabul ediyorum; ve ikincisi Mark https://stackoverflow.com/a/6488070/166589biraz sonra ortaya çıktı. Kullanılabilirlik açısından, Excel'in iyi bir kullanıcı dostu UTF-8 CSV desteğinden yoksun olduğu görülüyordu, bu yüzden her iki cevabın da doğru olduğunu düşünüyorum ve ilk önce Alex'in cevabını kabul ettim çünkü gerçekten Excel'in yapamadığını belirtti şeffaf bir şekilde. Burada otomatik olarak kafam karıştı . Mark'ın cevabı, daha ileri düzey kullanıcılar için beklenen sonuca ulaşmak için daha karmaşık bir yol sağlar. Her iki cevap da harika, ama Alex'in cevabı açıkça belirtilmeyen sorumu biraz daha iyi uyuyor.
GÜNCELLEME 2
Son düzenlemeden beş ay sonra Alex'in cevabının bir nedenle kaybolduğunu fark ettim. Umarım bu teknik bir sorun değildir ve umarım hangi cevabın daha büyük olduğu hakkında daha fazla tartışma yoktur. Bu yüzden Mark'ın cevabını en iyisi olarak kabul ediyorum.
\t
sınırlayıcı olarak UTF-16LE . İngilizce ve İngilizce olmayan Excel ayarlarında çalışacaktır. Ctrl-S
Dosya formatını seçmeden basabilir vb. Unicode karakterleri korur.