diff --git a/modules/data/webadmin/tmpl/add_edit_network.tmpl b/modules/data/webadmin/tmpl/add_edit_network.tmpl
index c53cffc3..4fc3bb39 100644
--- a/modules/data/webadmin/tmpl/add_edit_network.tmpl
+++ b/modules/data/webadmin/tmpl/add_edit_network.tmpl
@@ -136,7 +136,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 335530e7..3b347169 100644
--- a/modules/data/webadmin/tmpl/add_edit_user.tmpl
+++ b/modules/data/webadmin/tmpl/add_edit_user.tmpl
@@ -289,7 +289,7 @@
-
+
Client encoding:
INC encoding_settings.tmpl ?>
diff --git a/src/IRCNetwork.cpp b/src/IRCNetwork.cpp
index 9d202e4b..f7579fd9 100644
--- a/src/IRCNetwork.cpp
+++ b/src/IRCNetwork.cpp
@@ -1454,7 +1454,12 @@ void CIRCNetwork::SetBindHost(const CString& s) {
}
}
-void CIRCNetwork::SetEncoding(const CString& s) { m_sEncoding = s; }
+void CIRCNetwork::SetEncoding(const CString& s) {
+ m_sEncoding = s;
+ if (GetIRCSock()) {
+ GetIRCSock()->SetEncoding(s);
+ }
+}
void CIRCNetwork::SetQuitMsg(const CString& s) {
if (m_pUser->GetQuitMsg().Equals(s)) {
diff --git a/src/User.cpp b/src/User.cpp
index 812ff79b..23ea9758 100644
--- a/src/User.cpp
+++ b/src/User.cpp
@@ -1330,7 +1330,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) {