PDA

View Full Version : سوال:چطوری یه فایل txt را که توش فارسی نوشته بخونیم



mohamad72
جمعه 25 بهمن 1392, 13:29 عصر
سلام
من میخوام یه فایل Txt رو بخونم تو اپلیکیشنم ولی این فایل فارسی است و وقتی من میخونم به صورت یه مشت علامت سوال یا حروف چینی میخونه چی کار کنم؟؟؟
کدم اینه:
FileInputStream fin = null;
try {
fin= new FileInputStream("/storage/sdcard0/Download/myfile.txt");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String sin = "";
try {
sin = new DataInputStream(fin).readLine();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
txtpath.setText(sin);
try {
fin.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

#root#
جمعه 25 بهمن 1392, 13:34 عصر
سلام
یه دلیل : موقع ذخیره فایل encoding روی utf-8 نباشه که برای زبان فارسی باید باشه.

mohamad72
جمعه 25 بهمن 1392, 13:37 عصر
من روی utf-8 و ANSI و Unicode امتحان کردم نشد

#root#
جمعه 25 بهمن 1392, 14:01 عصر
مشکل از کدهاست ، متد برای خوندن متن زیاده ، نمونه :
public static String readFile(String filename) {
String content = null;
File file = new File(filename);
try {
FileReader reader = new FileReader(file);
char[] chars = new char[(int) file.length()];
reader.read(chars);
content = new String(chars);
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
return content;
}

mohamad72
جمعه 25 بهمن 1392, 15:20 عصر
مشکل از کدهاست ، متد برای خوندن متن زیاده ، نمونه :
public static String readFile(String filename) {
String content = null;
File file = new File(filename);
try {
FileReader reader = new FileReader(file);
char[] chars = new char[(int) file.length()];
reader.read(chars);
content = new String(chars);
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
return content;
}

ولی من با این کدم نتونستم

shahin bahari
جمعه 25 بهمن 1392, 19:07 عصر
درسته متن شما utf-8 هست اما برای ذخیره کردن در متغییر هیچ کجا نگفتید که با این روش هم Encode بشه. تو این لینک چند روش برای تغییر دادن encoding گزاشته شده:
http://stackoverflow.com/questions/5729806/encode-string-to-utf-8

#root#
جمعه 25 بهمن 1392, 21:08 عصر
مشکل از کدهاشون بود ، من تست کردم ، ولی با متدی که کپی پیست کردم :شیطان: متن فارسی رو درست نشون میده.
حالا نمیدونم چرا نتونستن!