diff --git a/src/common/interfaces.ts b/src/common/interfaces.ts index 0c29f1e..9ddec9f 100644 --- a/src/common/interfaces.ts +++ b/src/common/interfaces.ts @@ -9,7 +9,7 @@ export interface ClientHost { export interface ClientMessage { enabled: boolean; - format: 'hex' | 'ascii' | 'binary'; + format: 'hex' | 'utf-8' | 'binary'; message: string; name: string; } diff --git a/src/main/libs/Sender.ts b/src/main/libs/Sender.ts index 939c568..3ca1e57 100644 --- a/src/main/libs/Sender.ts +++ b/src/main/libs/Sender.ts @@ -142,8 +142,8 @@ class Sender { let msg; switch (this.messages[index].format) { - case 'ascii': - msg = Buffer.from(this.messages[index].message, 'ascii'); + case 'utf-8': + msg = Buffer.from(this.messages[index].message, 'utf-8'); break; case 'hex': msg = Buffer.from(this.messages[index].message.replace(/\s|0x/g, ''), 'hex'); diff --git a/src/main/libs/Server.ts b/src/main/libs/Server.ts index d841e83..fe9740e 100644 --- a/src/main/libs/Server.ts +++ b/src/main/libs/Server.ts @@ -75,7 +75,16 @@ class Server { this.sendLog(null, '', 'clientConnectedOnPort', { port }); socket.on('data', (msg: Buffer) => { - const msgString = msg.toString(); + let msgString: string; + + try { + new TextDecoder('utf8', { fatal: true }).decode(msg); + msgString = msg.toString('utf-8'); + } + catch (err) { + msgString = msg.toString('hex'); + } + if (this.echo) socket.write(msg); this.nBytes[i] += msg.length; this.nMsgs[i]++; diff --git a/src/renderer/components/ModalEditMessage.vue b/src/renderer/components/ModalEditMessage.vue index 6ddc81d..3ef233f 100644 --- a/src/renderer/components/ModalEditMessage.vue +++ b/src/renderer/components/ModalEditMessage.vue @@ -27,8 +27,8 @@ - -