re: UTF-8, PHP ve MySQL XML

3 Cevap php

Bu benim hala etrafında başımı almak için çalışıyorum ki, http://stackoverflow.com/questions/1791082/utf-8-php-and-xml-mysql ile ilgili edilir.

Umarım beni yaşıyorum sorunları çözmek için nasıl anlamanıza yardımcı olacak ayrı bir kaç soru var.

UTF-8 formatında bir dosya içine bir veritabanı ve çıkış değerlerini okumak için çalışıyorum. Ama kodlama sorunlar yaşıyorum, bu yüzden ben bütün kod sıyırın ans ile başlamak düşündüm:

$string = "Otivägen";
// then output to a file.

Ama içinde vim i bile bu dize, bunu yapıştırın her zaman ben olsun Otivägen girmek olamaz

Ben sadece bu dize ile boş bir PHP dosyası oluşturmak ve yüklemek için çalıştı, ama ben cat dosyasını tekrar ben gidince Otivägen.

Benim sorular ...

  1. Why is vim displaying it like this?
  2. If the file is downloaded would it display correctly if an application was expecting UTF-8?
  3. How can I output this string into a file that will eventually be an XML file in UTF-8 encoding.

Kodlama Benim anlayışım şu anda sınırlı olduğunu ve bunu anlamaya çalışıyorum.

3 Cevap

Vim kodlamaları ile ilgili karışıklık bir çok şey var. Iki kodlama ayarları, 'encoding' ve 'fileencoding' vardır.

'encoding' geçerli vim oturumda ilgilidir biridir - Ben 'utf-8' olarak her zaman bu terk, ama sonra sadece gvim veya unicode etkin terminallerini kullanmak.

'fileencoding' otomatik olarak algılanır ya da bir ortamda (++enc) ya da ben inanıyorum bir kipsatırında ile geçersiz kılınabilir dosyasının kendisini kodlama vardır. Bu 'fileencodings' seçeneğine göre tespit edilir.

Bu deneyin:

vim
:set encoding=utf-8
:e ++enc=utf-8 test_file.php
i
$string = "Otiv<Ctrl-K>a:gen";
:w

Daha fazla bilgi için bkz:

:help 'encoding'
:help 'fileencoding'
:help 'fileencodings'
:help ++enc
:help modeline

Ayrıca bakınız http://vim.wikia.com/wiki/Category%3AEncoding

  1. Vim UTF-8 destekler from version 6.0. Sistemi muhtemelen varsayılan olarak UTF-8 kullanarak değil - muhtemelen ASCII görüntülenen UTF-8 metin (ya da başka bir 8-bit sabit kodlama) görüyoruz.

  2. Bunu yapması gerekir. Eğer bu hizmet zaman UTF-8 dosya üzerinde kodlama ayarlayabilirsiniz.

  3. Herhangi bir dosya yazma işlevi bu kabul edeceğini - UTF-8 bayt sadece bir dizidir.

Bu bir vim sorun olmayabilir - terminal yazılım utf-8 ayarlı değilse, o zaman ne olursa olsun vim ne yaptığını yukarıdaki sorunları görürsünüz.