CsString  1.4.0
Timeline for Strings

1968

  • ASCII coded character set finalized

1987

  • Latin-1 standard published

1991

  • Release UCS-2, 16-bit storage (2 bytes, fixed width)

1992

  • MFC Version 1.0 release
    • CString uses UCS-2
    • According to a blog by Raymond Chen Microsoft most likely moved to UTF-16 with the release of Windows XP

1993

  • Release UCS-4, 32-bit storage (4 bytes, fixed width)

1995

  • Java Version 1.0 string class uses UCS-2

1996

  • Release UTF-8 (1-4 bytes, variable width)
  • Release UTF-16 (2 or 4 bytes, variable width)

1998

  • C++ STL added std::string, no encoding capabilities

1999

  • Latin-9 standard published
  • TrollTech releases Qt 2.0
    • QString is the native string class, uses UTF-16
    • Uses implicit sharing, copy on write (not allowable in C++11 STL)
    • Characters above 64k are stored using two 16-bit QChars

2001

  • Release UTF-32

2002

  • C# Version 1.0 string class uses UTF-16

2005

  • Java Version 5.0 string class uses UTF-16

2017

  • Release CsString, a Unicode aware string library