2016-04-04 27 views
-1

Çıkış dizeleri sağlayan yerleşik bir sistem üzerinde çalışıyorum. Bu dizelerden bazıları özel sembollerle çıkıyor. Yapmaya çalıştığım şey onları okumak ve benzer görünümlü Unicode karakterlerine dönüştürmektir. Sahip olduğum sorun, Chrome’un Inspect araçlarında (daha spesifik olarak sekmesi) aldığım iletileri inceleyebilirken, dizinin 65533 karakterine (yedek karakter) düzeltilmesidir.Çalışma zamanında bir dize düzenlemeye çalışılıyor

kullandığım çalışıyordum kod şudur: kontrol sekmede

textLines[3] = textLines[3].replace ("\xCD", "\x25a0"); 

harfler Í (U + 00CD) olarak görünür, ancak web sayfasında o yedek karakteri olarak belirir. Komut dosyasının kodlamasını UTF-16'ya ayarlamaya çalıştım ama işe yaramıyor. Kullandığım yazı tipi, bu karaktere sahip olması gereken Lucida Konsoludur.

"Gerçek" değeri algılamak ve çalışma zamanında değiştirmek için ne yapabilirim?

DÜZENLEME: Gerçek kodlama yoktur. Karakter doğrudan bir LCD ekrandan okunur. Bunun için aldığım değer 205'dir. Sorun bu.

Kodunu çözmeye çalıştığım biçim UTF-16'dır. Çevirmek istediğiniz sembolü nedir ve bayt formunu kodlayan ne olduğunu:

cevap

-1

nedeniyle üzerinde çalışıyorum gömülü sistem standart olmayan karakterler, Yaptığımın olduğunu gerektiği gerçeğine sonra değiştirin çıkışı tarayıcıya göndermeden önce elle kodlama yapın. Semboller, doğru Unicode değerlerine dönüştürülür, bu da Javascript komut dosyasında (replace() kullanarak) değiştirilir. Biraz hantal, ama aslında işe yarıyor.

+0

Sorununuza bir cevap olmadığı için bunu bir yorum olarak eklemelisiniz. –

+1

Bu çok sakıncalı değil. Web utf-8 daha kullanıyor ama bu keyfi. Tasarımınızda bir ara veri formu seçmeniz gerekiyor. Yani, gömülü sistemde standart olmayan bir kelime boyutu olan bir bit akışınız varsa (ör: bitlerin 3 alanı takip eden 6 bit vardır), 8 bit veya 16 bit olarak standartlaştırırdım.Sonra göstermek için, bilginin görüntülenmesiyle eşleşen bir çıktı formatına çeviririm. Birçok türde ekranınız olabilir. Bir utf-16 web sayfası olabilir. Başka bir kontrolöre RS-485 bağlantısı olabilir. –

0

iki şey kodlama üzerinde

  • Bilgisi bilmek zorunda?
  • Kod çözme hakkında bilgi: Web sayfası kod çözme formatı nedir? (genellikle UTF-8'dir) Sayfada göstermek istediğiniz sembol nedir ve web sayfasının kod çözme biçimindeki bayt cinsinden kodlama formu nedir?

Diyelim ki "é" (U + 00E9) sembolü "£" (U + 00A3) 'e dönüştürülen bir simge. Kaynak bilginin ISO-8859-1'de kodlandığını varsayalım (ASCII'yi uzat), böylece "é" 233 (veya "\ xE9"). Diyelim ki bu sembolü utf-8 olarak kodu çözülen bir web sayfasında "£" olarak göstermek istiyorum, yani "£" iki bayt 194 (veya "\ xC2") ve 162 (veya "\ xA3").

Şimdi tüm yapmanız gereken 233 tüm örneklerini bulmak ve 194 olarak ve 162.

+0

Web sayfasının kod çözümü UTF-16'dır. Diğer yandan sembol için kodlama daha zorlayıcıdır. Değeri gömülü bir sistemden alıyorum ve standart bir kodlamaya sahip değil (belirli bir karakterden ziyade LCD üzerinde çizilen bir değer). Sistemden aldığım değer 205'dir. – MKII

+0

@MKII UTF-16 için [link] (https://en.wikipedia.org/wiki/UTF-16). Gömülü sistemden gelen bilgi için sensizmi yapan şeyi yapmalısınız. Çeviri hesaplaması aynı prensiptir. –

İlgili konular