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 @@
-
-