private void Initialize(bool bFullInitialize) { Clear(); if (!bFullInitialize) { return; } if (m_strHighAnsi == null) { StringBuilder sbHighAnsi = new StringBuilder(); // [U+0080, U+009F] are C1 control characters, // U+00A0 is non-breaking space for (char ch = '\u00A1'; ch <= '\u00AC'; ++ch) { sbHighAnsi.Append(ch); } // U+00AD is soft hyphen (format character) for (char ch = '\u00AE'; ch < '\u00FF'; ++ch) { sbHighAnsi.Append(ch); } sbHighAnsi.Append('\u00FF'); m_strHighAnsi = sbHighAnsi.ToString(); } if (m_strSpecial == null) { PwCharSet pcs = new PwCharSet(false); pcs.AddRange('!', '/'); pcs.AddRange(':', '@'); pcs.AddRange('[', '`'); pcs.Add(@"|~"); pcs.Remove(@"-_ "); pcs.Remove(PwCharSet.Brackets); m_strSpecial = pcs.ToString(); } }