/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.nio.charset.StandardCharsets ;
import java.nio.charset.Charset ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
String blurb
= "© 2021 ABC Inc. All rights reserved." ;
// The character set and encoding currently in use by `System.out` is not known, some default.
System.
out.
println( "----------| default |--------------------------" ); System.
out.
println( "blurb: " + blurb
) ;
// Let's set the character set and encoding to UTF-8 by wrapping `System.out` in a `PrintStream`.
System.
out.
println( "----------| UTF-8 |--------------------------" ); try
{
printStream.println( "blurb: " + blurb );
}
{
e.printStackTrace();
}
// In contrast, try Windows-1252 character set.
System.
out.
println( "----------| windows-1252 |--------------------------" );
// Verify windows-1252 charset is available on the current JVM.
String windows1252CharSetName
= "windows-1252"; boolean isWindows1252CharsetAvailable = Charset.availableCharsets().keySet().contains( windows1252CharSetName );
if ( isWindows1252CharsetAvailable )
{
System.
out.
println( "isWindows1252CharsetAvailable = " + isWindows1252CharsetAvailable
); } else
{
System.
out.
println( "FAIL - No charset available for name: " + windows1252CharSetName
); }
// Print the blurb.
try
{
printStream.println( "blurb: " + blurb );
}
{
e.printStackTrace();
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgppbXBvcnQgamF2YS5uaW8uY2hhcnNldC5TdGFuZGFyZENoYXJzZXRzIDsKaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldCA7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCVN0cmluZyBibHVyYiA9ICLCqSAyMDIxIEFCQyBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIiA7CgkJCgkJLy8gVGhlIGNoYXJhY3RlciBzZXQgYW5kIGVuY29kaW5nIGN1cnJlbnRseSBpbiB1c2UgYnkgYFN5c3RlbS5vdXRgIGlzIG5vdCBrbm93biwgc29tZSBkZWZhdWx0LgoJCVN5c3RlbS5vdXQucHJpbnRsbiggIi0tLS0tLS0tLS18ICBkZWZhdWx0ICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iICk7CgkJU3lzdGVtLm91dC5wcmludGxuKCAiYmx1cmI6ICIgKyBibHVyYiApIDsgIAoJCQoJCS8vIExldCdzIHNldCB0aGUgY2hhcmFjdGVyIHNldCBhbmQgZW5jb2RpbmcgdG8gVVRGLTggYnkgd3JhcHBpbmcgYFN5c3RlbS5vdXRgIGluIGEgYFByaW50U3RyZWFtYC4KCQlTeXN0ZW0ub3V0LnByaW50bG4oICItLS0tLS0tLS0tfCAgVVRGLTggIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIgKTsKCQl0cnkKICAgICAgICB7CiAgICAgICAgICAgIFByaW50U3RyZWFtIHByaW50U3RyZWFtID0gbmV3IFByaW50U3RyZWFtKCBTeXN0ZW0ub3V0ICwgdHJ1ZSAsIFN0YW5kYXJkQ2hhcnNldHMuVVRGXzgubmFtZSgpICk7CgkJCXByaW50U3RyZWFtLnByaW50bG4oICJibHVyYjogIiArIGJsdXJiICk7CiAgICAgICAgfQogICAgICAgIGNhdGNoICggVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiBlICkKICAgICAgICB7CiAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIEluIGNvbnRyYXN0LCB0cnkgV2luZG93cy0xMjUyIGNoYXJhY3RlciBzZXQuCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCAiLS0tLS0tLS0tLXwgIHdpbmRvd3MtMTI1MiAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiApOwoKICAgICAgICAvLyBWZXJpZnkgd2luZG93cy0xMjUyIGNoYXJzZXQgaXMgYXZhaWxhYmxlIG9uIHRoZSBjdXJyZW50IEpWTS4KICAgICAgICBTdHJpbmcgd2luZG93czEyNTJDaGFyU2V0TmFtZSA9ICJ3aW5kb3dzLTEyNTIiOwogICAgICAgIGJvb2xlYW4gaXNXaW5kb3dzMTI1MkNoYXJzZXRBdmFpbGFibGUgPSBDaGFyc2V0LmF2YWlsYWJsZUNoYXJzZXRzKCkua2V5U2V0KCkuY29udGFpbnMoIHdpbmRvd3MxMjUyQ2hhclNldE5hbWUgKTsKICAgICAgICBpZiAoIGlzV2luZG93czEyNTJDaGFyc2V0QXZhaWxhYmxlICkKICAgICAgICB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiggImlzV2luZG93czEyNTJDaGFyc2V0QXZhaWxhYmxlID0gIiArIGlzV2luZG93czEyNTJDaGFyc2V0QXZhaWxhYmxlICk7CiAgICAgICAgfSBlbHNlCiAgICAgICAgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJGQUlMIC0gTm8gY2hhcnNldCBhdmFpbGFibGUgZm9yIG5hbWU6ICIgKyB3aW5kb3dzMTI1MkNoYXJTZXROYW1lICk7CiAgICAgICAgfQoKCQkvLyBQcmludCB0aGUgYmx1cmIuCiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBQcmludFN0cmVhbSBwcmludFN0cmVhbSA9IG5ldyBQcmludFN0cmVhbSggU3lzdGVtLm91dCAsIHRydWUgLCB3aW5kb3dzMTI1MkNoYXJTZXROYW1lICk7CgkJCXByaW50U3RyZWFtLnByaW50bG4oICJibHVyYjogIiArIGJsdXJiICk7CiAgICAgICAgfQogICAgICAgIGNhdGNoICggVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiBlICkKICAgICAgICB7CiAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CiAgICAgICAgfQogICAgICAgIAoJfQp9