As i already mentioned in my comment, it looks like your String s is already corrupted. the correct solution is to fix wherever you got s from in the first place. it seems like you are interpreting what is really a "UTF-8" encoded String using some single byte encoding ("ISO8859-1" seems to work on your test string).
Provided you haven't already lost data in the original string corruption, you can somewhat patch your current string using:
String s = "Här har du! â\u0080\u0093 Hur väl kan du snacka?";
byte[] b = s.getBytes("ISO-8859-1");
String t = new String(b, "UTF-8");
ächaracters are obviously UTF-8 bytes coerced to characters, but theâis correct, and I have no idea what\u0080\u0093are supposed to be, as they are not a valid UTF-8 byte sequence, and they wouldn't even make sense in the windows-1252 charset. In summary, this string doesn't seem to be derived from any one charset.s. wile you may be able to patch things together after the fact, fixing your actual cause is the correct solution. where are you getting this string from in the first place?