В ASCII нет µ
символа, поэтому вы не можете записать его в ASCII.
Java Строка s - это последовательность символов Юникода (и внутренне кодируются в UTF).-16), поэтому проблема, с которой вы сталкиваетесь, зависит либо от того, как вы читаете эту строку, либо от того, как вы ее пишете.
Обычно эта проблема решается созданием OutputStreamWriter(OutputStream out, String charsetName)
или InputStreamReader(InputStream in, String charsetName)
установки правильного набора символов,
Так что, если, например, вы получаете свою строку из файла в кодировке UTF-8, вы должны создать читатель, подобный этому:
Reader in = new InputStreamReader(new FileInputStream('some_file.txt'),"UTF-8")
Или, если вы пишете в ISO-Latin-1 файл, который вы должны создать Writer следующим образом:
Writer out = new OutputStreamWriter(new FileOutputStream('some_file.txt'),"ISO-8859-1")
Подобные вещи могут происходить с HTTP-запросом / ответом, в зависимости от того, как тело каждого интерпретируется сервером приложений или браузером, если это ваш случайЗатем вы добавляете некоторые детали к вашему вопросу.