我找不到这个“简单”行动的解决方案:
我正在尝试附加2个字符串以获取完整的文件路径(文件夹和文件名):
String a = /storage/emulated/0/abc/לכ
/
这有非英文字母和
String b = 20141231_042822.jpg
String c = a + b
结果:
/storage/emulated/0/abc/לכ/20141231_042822.jpg
(也尝试使用StringBuilder)
答案 0 :(得分:1)
尝试使用BidiFormatter
private static String text = "%s הוא עסוק";
private static String phone = "+1 650 253 0000";
String wrappedPhone = BidiFormatter.getInstance(true /* rtlContext */).unicodeWrap(phone);
String formattedText = String.format(text, wrappedPhone);
答案 1 :(得分:0)
使用char[]
代替,并使用此方法逐个添加:
public char[] generatePath(String a, String b){
if(a==null || b==null)
return null;
char[] result = new char[a.length() +b.length()];
for(int i=0;i<a.length();i++)
result[i]=a.charAt(i);
for(int i=a.length();i<a.length()+b.length();i++)
result[i]=a.charAt(i);
return result;
}
这将确保每个角色都在正确的位置。
Java中的
String
个对象没有编码(*)。唯一具有编码的是
byte[]
。所以如果你需要的话 UTF-8数据,那么您需要byte[]
。如果您有String
包含意外数据,然后问题是在某些较早的地方 将一些二进制数据错误地转换为String
(即它是 使用错误的编码)。(*)这并不完全准确。实际上他们有编码,但是 这个UTF-16并且无法修改。 来源:answer
您需要做的是使用Byte[]
而不是String
尝试this
Charset.forName("UTF-8").encode(myString);
或this
byte[] ptext = String.getBytes("UTF-8");