Ara*_*rif 2 java string uppercase
就在前几天,我遇到了一个奇怪的怪虫.我有一串我必须建立的角色.作为主机系统的分隔符,我正在使用char 254进行通信.无论如何,我构建了我的字符串并将其发送给主机.在主机上我收到了char 222作为分隔符!在抓了我的头,然后深入地看着它似乎很奇怪
十六进制:FE,二进制:11111110
正在变成
hex:DE,二进制:11011110
我尝试了Locale.getDefault()和Locale.ENGLISH无济于事.
可能是String.toUpperCase的实现除了特定的硬编码之外还有所有字符的掩码?
现在我正在使用以下方法解决问题:
public static String toUpperCase(String input) {
char[] chars = input.toCharArray();
for(int i = 0; i < chars.length; ++i ) {
if( chars[i] > 96 && chars[i] < 123 ) {
chars[i] &= 223;
}
}
return new String(chars);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我错过了什么?有没有更好的方式我不知道?谢谢你!