Herkes bu karakteri ne olduğunu bana söyleyebilir misiniz?

4 Cevap php

Ben zaman zaman yukarı gösteren bu karakteri var ve ASCII tablosunda bulmak için görünmüyor olabilir. Ben veritabanına gönderilmeden önce veri üzerinde bir filtre yapmak istiyorum ama ilk ne olduğunu bilmeniz gerekir. Belki birisi bir WYSIWYG editörü kullanıyorum ve nereden geldiğini bu içeri ipucu bana yapabilirsiniz. Karakteri çok sporadicly görünüyor ama ben iki \ r veya backspace yaptığınızda daha sık görünmesini görünüyor.

İşte karakter

Â

Tamam, ben belgenin baş utf8 içerik türünü değiştirmek ama hala veritabanında bu karakterleri alıyorum öne sürüldü. Ben içerik türünü ekledi sonra burada bir test

adf af  aafd a a

aa a  afa a 

adf

4 Cevap

Bu karakter, UTF-8 kodlama sorunları ile ilgili olması kuvvetle muhtemeldir. Joel'in makale The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) kesinlikle bu durumda okuma tavsiye edilir.

Veritabanına göndermeden önce bu karakterleri filtreleyerek neredeyse kesinlikle burada yapılacak yanlış bir şeydir.

Eğer söz durumda, muhtemelen U olmayan mola alan için Unicode karakter A0, 00 karakteri ile ilgileniyor. Bu karakter için biraz desen:

1010 0000

UTF-8 kodlama sonra, nerede kodlanmış bayt benziyor

110x xxxx  10xx xxxx

'x' Unicode karakter değeri biraz temsil, yani U 00 A0 olarak kodlanmış burada:

1100 0010  1010 0000

hangi 0xC2 0xA0 olduğunu. İlk karakter görüyorsanız  iken Tesadüfen, ikinci karakter, kodlama edildi orijinal karakter (U +00 A0) gibi aynı byte değeridir.

Bu bir "bir sirkumfleks Latin capitial A", HTML kodu  Unicode U +00 C2

Wikipage: http://en.wikipedia.org/wiki/%C3%82

Ben OP duyuyorum. Artık yapman değilim ama çözüm paylaşmak için geri geldi. Sorun aslında bir kodlama sorun oldu. Ben eklendi:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Ben yaptım sonra, ben hala benim veritabanında bu korkak karakterleri almak olduğunu fark. Daha sonra veritabanı tablosu üzerinde kodlama değişti ve bu da hiçbir şey yapmadı. Bu sadece ... tarayıcısını sol ben tarayıcıda kodlamasını kontrol ve ISO-8859-1 kullanılarak fark ettim. Ben utf-8 için tarayıcınızın kodlama değişti ve şimdi iyi çalışıyor. :)

Emeği geçen herkese teşekkürler.

Sana bir zamanlar yaşamış bir hata görüyoruz olduğunu düşünüyorum. ISO-8859-1, aslında Batı Avrupa dilleri için Windows 1152 (Ben 1152 olduğunu düşünüyorum) bir alt kümesidir. Sorun web sunucusu ISO-8859-1 kabul ettiğinde tarayıcılar memnuniyetle Windows 1152 karakterlerini gönderir olmasıdır. Bu tarayıcı, ISO-8859-1 geçersiz veri gönderir anlamına gelir. Yani en azından benim Windows kurulumu ile ne olduğunu. Ben hem IE ve Firefox bu davranışı gördük.

Ben kullanıcıların bir Word belgesindeki verileri yapıştırmak olacak bir wysiwyg editörü ile sorun vardı. Bu belge, tire ve tire hem de içerecektir. Karakterlerden biri ince teslim olacaktı. O karakter (hangi hangi hatırlıyorum asla) ISO-8859-1 olmadığından diğer çöp olacaktır.

Biz unicode dönüştürme zaman geçersiz ISO karakter hakkında şikayet etmedi olarak ya da yardım etmedi kullanılarak yapılmıştır. Net framework.