How to convert UCS-2 and UTF-8 unicode to and from Ansi, on the Windows command line with the Swiss File Knife tool.

sfk unicode support:

1. commands with real unicode conversion

sfk wtoa   convert UCS-2 wide character data to 8-bit data
           in the Ansi codepage of your Windows system.
           cannot convert characters outside your codepage.
sfk atow   convert 8-bit Ansi codepage data to UCS-2 wide chars.
sfk wtou   convert UCS-2 wide character data to 8-bit UTF-8.
sfk utow   convert 8-bit UTF-8 data to UCS-2 wide characters.
sfk utoa   convert UTF-8 to Ansi. cannot convert characters
           outside your codepage.
sfk atou   convert Ansi to UTF-8.

2. primitive generic reading of wide character files

by default, sfk commands that need to read TEXT files will
skip utf-16 (ucs-2, wide char) files, as they look like binary,
containing zero bytes.

you may set option "-wchar" to activate utf-16 detection and decoding
for file READING, allowing to search for words also in unicode files.

-wchar works with text processing commands like sfk filter and sfk find.
(sfk hexfind will ignore the option, as it reads everything as binary)

the decoding is primitive and simply strips every 2nd byte,
meaning that only Latin characters can be searched.

NOTE: option "-wchar" is experimental and shall not be used if you want
      to write any text file contents! (e.g. with sfk filter ... -write)
      during write, the utf-16 format will be replaced by a primitive
      plain ascii format (NOT a proper conversion - sfk will just
      drop every 2nd byte from the file) which is often not desirable.

see also
   sfk help chars   about codepages
   sfk help nocase  about case insensitive search

examples
   sfk -wchar filter mydir -+foo
      filter "foo" in all text files of mydir, including utf-16.
   sfk -wchar find mydir foobar
      find "foobar" in all files of mydir, including utf-16.