diff --git a/modules/data/webadmin/tmpl/add_edit_network.tmpl b/modules/data/webadmin/tmpl/add_edit_network.tmpl
index 9d7eded8..597bf02f 100644
--- a/modules/data/webadmin/tmpl/add_edit_network.tmpl
+++ b/modules/data/webadmin/tmpl/add_edit_network.tmpl
@@ -124,7 +124,7 @@
-
+
Server encoding:
INC encoding_settings.tmpl ?>
diff --git a/modules/data/webadmin/tmpl/add_edit_user.tmpl b/modules/data/webadmin/tmpl/add_edit_user.tmpl
index a62bd6cd..b05bfcf7 100644
--- a/modules/data/webadmin/tmpl/add_edit_user.tmpl
+++ b/modules/data/webadmin/tmpl/add_edit_user.tmpl
@@ -283,7 +283,7 @@
-
+
Client encoding:
INC encoding_settings.tmpl ?>
diff --git a/src/IRCNetwork.cpp b/src/IRCNetwork.cpp
index 3d6221c0..7f6da53f 100644
--- a/src/IRCNetwork.cpp
+++ b/src/IRCNetwork.cpp
@@ -1392,6 +1392,9 @@ void CIRCNetwork::SetBindHost(const CString& s) {
void CIRCNetwork::SetEncoding(const CString& s) {
m_sEncoding = s;
+ if (GetIRCSock()) {
+ GetIRCSock()->SetEncoding(s);
+ }
}
void CIRCNetwork::SetQuitMsg(const CString& s) {
diff --git a/src/User.cpp b/src/User.cpp
index 64821d0b..f7b42272 100644
--- a/src/User.cpp
+++ b/src/User.cpp
@@ -1147,7 +1147,12 @@ void CUser::SetDenyLoadMod(bool b) { m_bDenyLoadMod = b; }
void CUser::SetAdmin(bool b) { m_bAdmin = b; }
void CUser::SetDenySetBindHost(bool b) { m_bDenySetBindHost = b; }
void CUser::SetDefaultChanModes(const CString& s) { m_sDefaultChanModes = s; }
-void CUser::SetClientEncoding(const CString& s) { m_sClientEncoding = s; }
+void CUser::SetClientEncoding(const CString& s) {
+ m_sClientEncoding = s;
+ for (CClient* pClient : GetAllClients()) {
+ pClient->SetEncoding(s);
+ }
+}
void CUser::SetQuitMsg(const CString& s) { m_sQuitMsg = s; }
void CUser::SetAutoClearChanBuffer(bool b) {
for (CIRCNetwork* pNetwork : m_vIRCNetworks) {