
#include <iostream>
#include <string>
#include <locale>

int main()
{
	try
	{
		std::locale::global(std::locale("en_US.utf8"));

		std::string s = u8"This Is Ä Test";

		std::use_facet<std::ctype<char>>(std::locale()).tolower(&s[0], &s[0] + s.size());

		//std::cout.imbue(std::locale());
		std::cout << s << std::endl;
	}
	catch (std::exception& e)
	{
		std::cerr << e.what() << std::endl;
	}
}
