문자열 변환에서 UTF-8로 문제가 발생했습니다. 기본적으로, 나는 DayDescriptionEnum을 개발했다. DayDescriptionEnum은 실제로 요일을 얻고 이에 따라 설명을 반환한다. 아래 코드를 참고하십시오.문자열 UTF-8 변환 문제
public enum DayDescriptionEnum {
SUNDAY(1, "Sunday", "\\u0627\\u0644\\u0623\\u062d\\u062f"),
MONDAY(2, "Monday", "\\u0627\\u0644\\u0625\\u062b\\u0646\\u064a\\u0646"),
TUESDAY(3, "Tuesday", "\\u0627\\u0644\\u062b\\u0644\\u0627\\u062b\\u0627\\u0621"),
WEDNESDAY(4, "Wednesday", "\\u0627\\u0644\\u0623\\u0631\\u0628\\u0639\\u0627\\u0621"),
THURSDAY(5, "Thursday", "\\u0627\\u0644\\u062e\\u0645\\u064a\\u0633"),
FRIDAY(6, "Friday", "\\u0627\\u0644\\u062c\\u0645\\u0639\\u0629"),
SATURDAY(7, "Saturday", "\\u0627\\u0644\\u0633\\u0628\\u062a");
private long dayofWeek;
private String dayDescriptionEnglish;
private String dayDescriptionArabic;
private DayDescriptionEnum(long dayofWeek, String dayDescriptionEnglish, String dayDescriptionArabic) {
this.dayofWeek = dayofWeek;
this.dayDescriptionEnglish = dayDescriptionEnglish;
this.dayDescriptionArabic = dayDescriptionArabic;
}
public long getDayofWeek() {
return dayofWeek;
}
public String getDayDescriptionEnglish() {
return dayDescriptionEnglish;
}
public String getDayDescriptionArabic() {
return dayDescriptionArabic;
}
}
public static DayDescriptionEnum getDescriptionOfDay(long dayOfWeek){
DayDescriptionEnum dayDescriptionEnum = DayDescriptionEnum.SUNDAY;
if(PermitReportConstants.SUNDAY == dayOfWeek){
dayDescriptionEnum = DayDescriptionEnum.SUNDAY;
}
if(PermitReportConstants.MONDAY == dayOfWeek){
dayDescriptionEnum = DayDescriptionEnum.MONDAY;
}
if(PermitReportConstants.TUESDAY == dayOfWeek){
dayDescriptionEnum = DayDescriptionEnum.TUESDAY;
}
if(PermitReportConstants.WEDNESDAY == dayOfWeek){
dayDescriptionEnum = DayDescriptionEnum.WEDNESDAY;
}
if(PermitReportConstants.THURSDAY == dayOfWeek){
dayDescriptionEnum = DayDescriptionEnum.THURSDAY;
}
if(PermitReportConstants.FRIDAY == dayOfWeek){
dayDescriptionEnum = DayDescriptionEnum.FRIDAY;
}
if(PermitReportConstants.SATURDAY == dayOfWeek){
dayDescriptionEnum = DayDescriptionEnum.SATURDAY;
}
return dayDescriptionEnum;
}
위의 방법은 요일을 소요하고 그에 따라 열거 형을 반환합니다. 이제이 문자열을 표시 할 때 "\ u0627 \ u0644 \ u0623 \ u062d \ u062f"와 같은 설명이 표시됩니다. 나는 연구하고 문자열을 UTF-8 형식으로 변환해야한다는 것을 깨달았다. 그래서 아래 코드를 넣으십시오.
byte[] utf8Bytes = null ;
try {
utf8Bytes = dayDescriptionEnum.getDayDescriptionArabic().getBytes("UTF-8");
String arabicDescription = new String(utf8Bytes,"UTF-8");
readyToPrintDeliver.setContractDayDescAr(arabicDescription);
} catch (UnsupportedEncodingException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
효과가 없습니다. 내 질문은, 나는 이미 유니 코드로 문자열을 변환했다. 내가 실수를 저지르고 있니? 친절하게 도와주세요.
감사합니다.
문자열에 이중 블랙 슬래시가 있습니다. 두 번째 백 슬래시를 첫 번째 이스케이프 문자로 이스케이프 처리하면 유니 코드 문자가 인식되지 않습니다. 하나의 백 슬래시 만 사용하십시오. – DirkNM
\\을 사용하지 마십시오. \를 사용하십시오. \\ 사용자가 이스케이프 처리를하고 있습니다 – Adem
왜 UTF-8로 변환하고 다시 시작 하시겠습니까? –