Çı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 Ağ 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:
Sorununuza bir cevap olmadığı için bunu bir yorum olarak eklemelisiniz. –
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. –