Saya menerapkan klien soket di TCL saja. Server perlu diberitahu tentang panjang pesan yang dikirim oleh klien, jadi saya menambahkan panjang pesan dengan karakter utf-8 dari panjang pesan. Saya mengonversi panjang pesan menjadi karakter utf-8 menggunakan perintah Format TCL.

Namun, perintah Format tidak selalu mengembalikan karakter utf-8 yang benar yang membingungkan server. Misalnya dalam contoh kode di bawah ini format mengembalikan untuk 21 dan 167:

% format %c 21
§
% format %c 167
§

Mungkinkah saya melakukan sesuatu yang salah?

tcl
0
yaro 20 November 2017, 17:03

1 menjawab

Jawaban Terbaik

Harus berasal dari format %c 167; itu persis seperti yang diharapkan mengingat itu adalah karakter tanda bagian. Sebaliknya, format %c 21 harus menghasilkan karakter NAK yang tidak dapat dicetak, meskipun untuk beberapa alasan terminal Anda merendernya secara berbeda. (Saya tidak yakin dengan interpretasi apa itu jatuh kembali; itu bukan salah satu yang terdaftar dalam tabel penyandian yang saya miliki dengan mudah.)

Tcl mungkin melakukan hal yang benar, terutama karena karakter NAK hadir dalam pengkodean karakter yang paling umum.

1
Donal Fellows 20 November 2017, 16:19