Saya mencoba membuat encoder PDU yang mengharuskan saya untuk:
- Ubah setiap karakter dalam string menjadi nilai ASCII
- Ubah nilai ASCII menjadi biner 7-bit
- Menggunakan metode ini - Mengubah 7-bit menjadi 8 bit. Saya melakukan ini dalam suatu fungsi dengan mengambil septet pertama, dan menambahkan dari akhir septet berikutnya hingga yang pertama memiliki 8 bit (seperti yang ditunjukkan di url). Ini pada dasarnya berlanjut sepanjang.
- Menggunakan biner 8 bit saya dapat mengonversi ke Hex untuk string PDU saya.
Semua ini berfungsi dengan baik saat menggunakan:
ASCII = Convert.ToInt32(char)
Convert.ToString(ASCII, 2)
= 7bitSeptetToOctet(7bit)
= 8bit (Fungsi saya)Convert.ToString(Convert.ToInt32(8bit, 2), 16).ToUpper()
(Saya menambahkan 0 jika diubah menjadi hanya 1 karakter)
Sekarang muncul masalah saya, ketika mencoba mengonversi karakter khusus, seperti 'ø' Denmark, Anda mendapatkan nilai ASCII 248, yang dengan Convert.ToString(248, 2)
memberi saya 11111000
(8 bit). Jadi saya perlu tahu cara memaksa konversi 'ø' ke biner 7 bit, atau konversi SeptetToOctet (ini konversi pada URL yang disediakan) perlu direvisi, tapi sekarang saya punya cukup pengetahuan tentang konversi biner dan biner untuk mengetahuinya bagaimana melakukannya dengan benar.
char
pada dasarnya adalah unit kode UTF-16. Anda tidak perlu meneleponConvert.ToInt32
sama sekali. Namun pada dasarnya jika Anda memiliki karakter non-ASCII, Anda perlu mengetahui cara representasinya... - person Jon Skeet   schedule 12.09.2011