Loại bỏ dấu tiếng Việt trong tên file

Chả là có cái list nhạc phim, muốn upload lên nhưng mà tên file thì bằng tiếng Việt có dấu, host thì host windows nên không up lên được :-( Tìm phần mềm mãi cũng không có #:-s Thử dùng php nhưng php chạy trên windows cũng không get đc tên file tiếng Việt, rồi thử dùng java thấy cũng không ăn thua,… nghĩ đến C++ nhưng mà nhớ là ngày xưa lập trình C++ thì hình như ko hỗ trợ unicode(utf-8) và lại trên máy cũng ko cài IDE cho C++ nên thôi ko thử nữa,… rồi dùng thử AutoIT nhưng cũng chưa thạo cho lắm, nên phải lấy danh sách file qua console và cũng bị lỗi dấu… Cuối cùng spam cả list yahoo để hỏi, một đứa bạn trả lời là dùng java được đấy, sao mình dùng mãi không được nhỉ ~X( lúc đầu là in ra danh sách các file thấy nó toàn bị lỗi rồi thử print 1 đoạn chữ tiếng Việt ra thấy nó cũng lỗi, đoán là do cái phần hiển thị output nó ko hỗ trợ unicode giống như chạy qua cmd vậy nên cũng thử cả System.out.print(filename.equals(“nhạc.mp3”)) nhưng nó vẫn print ra false @@ không nghĩ đến trường hợp cái editor ko hỗ trợ unicode vì vẫn gõ tiếng Việt trên đó đều đều + encoding của file lại là utf-8. Hỏi lại đứa bạn lần nữa thì nó bảo phải dùng eclipse ấy, jcreator ko được đâu và phải chỉnh lại bảng mã soạn thảo cho cái eclipse là unicode. Lúc này mới thử kiểm tra bảng mã của cái jcreator thì thấy là nó ko có unicode :-( vậy mà mình cứ nghĩ là nó đặt sẵn unicode rồi tại vì vẫn gõ tiếng Việt trên đó đều mà :-|

Và đây là đoạn mã nguồn để bỏ dấu trong tên file. Copy các file cần bỏ dấu vào thư mục input rồi chạy là xong :d các file đã được bỏ dấu sẽ nằm ở thư mục output :d . Ai thích dùng ngay thì tải Rename-1.1.zip về chạy run.bat
Các phiên bản:

– 1.0: Rename.rar

– 1.1: Rename-1.1.zip

import java.io.File;
class Rename{
public Rename(String source,String dest){
FileRename(source,dest);
}
public static void main (String[] args) {
new Rename("input","output");

}
public void FileRename(String source,String dest){
File fromDir=new File(source);
File destDir=new File(dest);
if(!fromDir.isDirectory())
if(!fromDir.mkdir()){
System.out.println("Cound not create dir "+source);
}
if(!destDir.isDirectory())
if(!destDir.mkdir()){
System.out.println("Cound not create dir "+dest);
}
String [] files=fromDir.list();
int stop=files.length;
for(int i=0;i<stop;i++){
String newname=rename(files[i]);
File file=new File(source+"/"+files[i]);
File newFileName=new File(dest+"/"+newname);
if(file.renameTo(newFileName))
System.out.println("Renamed "+files[i]+" to "+ newname);
}
}
public String rename(String file){
file=file.replace('à','a');file=file.replace('á','a');file=file.replace('ả','a');file=file.replace('ã','a');
file=file.replace('ạ','a');file=file.replace('ă','a');file=file.replace('ằ','a');file=file.replace('ắ','a');
file=file.replace('ẳ','a');file=file.replace('ẵ','a');file=file.replace('ặ','a');file=file.replace('â','a');
file=file.replace('ầ','a');file=file.replace('ấ','a');file=file.replace('ẩ','a');file=file.replace('ẫ','a');
file=file.replace('ậ','a');file=file.replace('À','a');file=file.replace('Á','a');file=file.replace('Ả','a');
file=file.replace('Ã','a');file=file.replace('Ạ','a');file=file.replace('Ă','a');file=file.replace('Ằ','a');
file=file.replace('Ắ','a');file=file.replace('Ẳ','a');file=file.replace('Ẵ','a');file=file.replace('Ặ','a');
file=file.replace('Â','a');file=file.replace('Ầ','a');file=file.replace('Ấ','a');file=file.replace('Ẩ','a');
file=file.replace('Ẫ','a');file=file.replace('Ậ','a');file=file.replace('đ','d');file=file.replace('Đ','d');
file=file.replace('è','e');file=file.replace('é','e');file=file.replace('ẻ','e');file=file.replace('ẽ','e');
file=file.replace('ẹ','e');file=file.replace('ê','e');file=file.replace('ề','e');file=file.replace('ế','e');
file=file.replace('ể','e');file=file.replace('ễ','e');file=file.replace('ệ','e');file=file.replace('È','e');
file=file.replace('É','e');file=file.replace('Ẻ','e');file=file.replace('Ẽ','e');file=file.replace('Ẹ','e');
file=file.replace('Ê','e');file=file.replace('Ề','e');file=file.replace('Ế','e');file=file.replace('Ể','e');
file=file.replace('Ễ','e');file=file.replace('Ệ','e');file=file.replace('ì','i');file=file.replace('í','i');
file=file.replace('ỉ','i');file=file.replace('ĩ','i');file=file.replace('ị','i');file=file.replace('Ì','i');
file=file.replace('Í','i');file=file.replace('Ỉ','i');file=file.replace('Ĩ','i');file=file.replace('Ị','i');
file=file.replace('ò','o');file=file.replace('ó','o');file=file.replace('ỏ','o');file=file.replace('õ','o');
file=file.replace('ọ','o');file=file.replace('ô','o');file=file.replace('ồ','o');file=file.replace('ố','o');
file=file.replace('ổ','o');file=file.replace('ỗ','o');file=file.replace('ộ','o');file=file.replace('ơ','o');
file=file.replace('ờ','o');file=file.replace('ớ','o');file=file.replace('ở','o');file=file.replace('ỡ','o');
file=file.replace('ợ','o');file=file.replace('Ò','o');file=file.replace('Ó','o');file=file.replace('Ỏ','o');
file=file.replace('Õ','o');file=file.replace('Ọ','o');file=file.replace('Ô','o');file=file.replace('Ồ','o');
file=file.replace('Ố','o');file=file.replace('Ổ','o');file=file.replace('Ỗ','o');file=file.replace('Ộ','o');
file=file.replace('Ơ','o');file=file.replace('Ờ','o');file=file.replace('Ớ','o');file=file.replace('Ở','o');
file=file.replace('Ỡ','o');file=file.replace('Ợ','o');file=file.replace('ù','u');file=file.replace('ú','u');
file=file.replace('ủ','u');file=file.replace('ũ','u');file=file.replace('ụ','u');file=file.replace('ư','u');
file=file.replace('ừ','u');file=file.replace('ứ','u');file=file.replace('ử','u');file=file.replace('ữ','u');
file=file.replace('ự','u');file=file.replace('Ù','u');file=file.replace('Ú','u');file=file.replace('Ủ','u');
file=file.replace('Ũ','u');file=file.replace('Ụ','u');file=file.replace('Ư','u');file=file.replace('Ừ','u');
file=file.replace('Ứ','u');file=file.replace('Ử','u');file=file.replace('Ữ','u');file=file.replace('Ự','u');
file=file.replace('ỳ','y');file=file.replace('ý','y');file=file.replace('ỷ','y');file=file.replace('ỹ','y');
file=file.replace('ỵ','y');file=file.replace('Y','y');file=file.replace('Ỳ','y');file=file.replace('Ý','y');
file=file.replace('Ỷ','y');file=file.replace('Ỹ','y');file=file.replace('Ỵ','y');
return file;
}
}

Còn đây là thành quả

Nhạc phim

10 Responses

  1. Phạm Thành viết:

    :-) Chào bạn thế anh, nay mình tìm tài liệu và vô tình ghé blog của bạn, bài viết của bạn khá hay. Mình đang làm về đề tài lấy dữ liệu trên web, nhưng mắc phải lỗi tiếng việt từ web down về bị lỗi, mình đã thử chuyển qua mã utf8 của string và utf16 của char nhưng vẫn không được. Nếu bạn có biết về đề tài này vui lòng cho mình chút ý kiến. Nick của mình là: thanhhao8705. Thanks bạn nhiều

    • As viết:

      Bạn làm đề tài bằng ngôn ngữ gì? Nếu java thì cứ dùng eclipse, để cái bảng mã của editor là unicode. Rồi get bình thường thôi, sẽ không bị lỗi đâu :-) Bạn có thể tham khảo cái JVnTextPro cái này là đọc file, nhưng mà đọc file với đọc dữ liệu trên web cũng chả khác nhau mấy đâu :k

  2. noname viết:

    cái mã nguồn này còn thiếu chữ Đ nên nó không chuyển được chữ Đ thành D.

    • As viết:

      Dòng 40, cái gì đây :-&GT;
      file=file.replace(‘đ’,’d’);file=file.replace(‘Đ’,’d’);

      • nguoiban1987 viết:

        Bạn As ơi, chương trình này đổi từ Đ thành d (thay vì Đ thành D) bạn có thể chỉnh lại dòng 40 để đổi từ chữ Đ thành D (in hoa) được không? Sáng nay cần rename 63 files của 63 nhân viên trong cty, thấy được chương trình của bạn thật hay quá! Nếu được thì gửi cho mình qua địa chỉ mail sau đây nhé: nguoiban1987@gmail.com

        Thanks so much!

  3. nguoiban1987 viết:

    À, cho mình hỏi luôn: Có cách nào để gửi nhiều file khác nhau cho nhiều người khác nhau chỉ trong 1 thao tác không?

    Mình đnag giữ bảng lương excel của cty gồm 63 nhân viên, mình phải tạo ra 63 files, mỗi file chỉ có chỉ số lương của duy nhất 1 người mà thôi, rồi gửi 63 files đó cho 63 địa chỉ mail khác nhau.

    Mình có lên mạng search solution, họ có chỉ cách dùng mail merge trong word kết hợp với dữ liệu excel, nhưng bảng lương của mình nhiều cột lắm: số công, chức danh, chức vụ, họ tên, bảo hiểm, khấu trừ,…. Cả mấy chục cột, một trang word không thể chứa nổi, mà nếu có chứa nổi thì sẽ rất khó khăn cho người xem, nên phải gửi file excel. Bạn có cách gì thì chỉ giúp mình nhé!

    Thanks again!

  4. As viết:

    @nguoiban1987: Có source ở trên mà, bạn tự sửa nhé :-)
    Còn về cái bảng lương thì 1 là dùng mail merge, 2 là gửi bảng lương tổng hợp cho tất cả mọi người rồi phần của ai thì người đó tự đọc :"&GT; . Còn 1 cách khác là lưu dưới dạng csv rồi tự code lấy 1 chương trình xử lý theo ý mình muốn :d

  5. nguoiban1987 viết:

    Bạn As ơi, bạn sửa lại dòng 40 giùm mình đi, mình ko rành về lập trình, hơn nữa mình ko biết ngôn ngữ bạn đang dùng là gì mà dùngchương trình gì để biên tập. Bạn có thể chỉ cho mình được không? Còn nếu được thì bạn sửa lại dòng 40 giùm mình thì quá tốt, cám ơn bạn nhiều, mail của mình : nguoiban1987@gmail.com

    Thanks so much!

Trả lời

© 2010-2013 As247 Blog. All Rights Reserved. 0,996