diff --git a/core/fxcrt/cfx_utf8decoder.cpp b/core/fxcrt/cfx_utf8decoder.cpp
index 8adab5c..68ea30a 100644
--- a/core/fxcrt/cfx_utf8decoder.cpp
+++ b/core/fxcrt/cfx_utf8decoder.cpp
@@ -6,10 +6,9 @@
 
 #include "core/fxcrt/cfx_utf8decoder.h"
 
-void CFX_UTF8Decoder::Clear() {
-  m_Buffer.Clear();
-  m_PendingBytes = 0;
-}
+CFX_UTF8Decoder::CFX_UTF8Decoder() = default;
+
+CFX_UTF8Decoder::~CFX_UTF8Decoder() = default;
 
 void CFX_UTF8Decoder::AppendCodePoint(uint32_t ch) {
   m_Buffer.AppendChar(static_cast<wchar_t>(ch));
diff --git a/core/fxcrt/cfx_utf8decoder.h b/core/fxcrt/cfx_utf8decoder.h
index 1cafbe4..a236aac 100644
--- a/core/fxcrt/cfx_utf8decoder.h
+++ b/core/fxcrt/cfx_utf8decoder.h
@@ -11,17 +11,17 @@
 
 class CFX_UTF8Decoder {
  public:
-  CFX_UTF8Decoder() { m_PendingBytes = 0; }
+  CFX_UTF8Decoder();
+  ~CFX_UTF8Decoder();
 
-  void Clear();
   void Input(uint8_t byte);
   void AppendCodePoint(uint32_t ch);
   void ClearStatus() { m_PendingBytes = 0; }
   WideStringView GetResult() const { return m_Buffer.AsStringView(); }
 
  private:
-  int m_PendingBytes;
-  uint32_t m_PendingChar;
+  int m_PendingBytes = 0;
+  uint32_t m_PendingChar = 0;
   CFX_WideTextBuf m_Buffer;
 };
 
