Chuyển đổi tiếng việt có dấu thành không dấu bằng Java áp dụng tạo URL thân thiện với các bộ máy tìm kiếm (SEO)
Đăng lúc: 08:48 PM - 09/12/2023 bởi Charles Chung - 1026Trong bài viết này tôi sẽ hướng dẫn các bạn viết hàm chuyển đổi chuỗi tiếng việt có dấu thành không dấu áp dụng tạo URL thân thiện với các bộ máy tìm kiếm (SEO), ngôn ngữ sử dụng Java và C#
Giới thiệu
Google nói về tầm quan trọng của việc sử dụng các URL đơn giản, thân thiện trong hướng dẫn SEO của họ, nhưng bạn làm điều đó như thế nào? Hãy bắt đầu với tin tốt: tạo URL cho SEO không phải là quá khó khăn. Nếu bạn mô tả trang của bạn bằng một vài từ và thay thế khoảng trắng bằng dấu gạch nối, thì đó thường sẽ là một trò chơi đủ tốt cho SEO. Nhưng có lẽ bạn không muốn mò mẫm trong bóng tối. Vì vậy, bên dưới, chúng tôi sẽ thực hiện một quy trình đơn giản để tạo Slug URL được tối ưu hóa và một vài thực tiễn tốt nhất cho phần còn lại của URL. Nhưng trước tiên, hãy đảm bảo rằng chúng ta hiểu cách URL được tạo thân thiện với công cụ tìm kiếm.
Cấu trúc của một URL bao gồm nhiều phần.
Đối với SEO, phần quan trọng nhất được cho là Slug. Bạn phải chọn một trong số này mỗi khi bạn tạo một trang hoặc bài đăng. Slug trên các website thường lấy thông tin từ Tiêu đề của trang hay Tiêu đề của bài đăng.
Sau đây sẽ là hai đoạn code mẫu Java và C# giúp bạn có thể chuẩn hóa 1 Slug phù hợp với các tiêu chí của SEO (loại bỏ ký tự đặc biệt, chuyển ký tự tiếng việt có dấu thành không dấu, chuyển dấu cách thành dấu gạch ngang), ngoài ra bạn có thể tùy biến thêm, bớt các ký tự mong muốn...).
Code với Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
public static String convertTitleSEO(String name) { // khai báo mảng chứa các ký tự tiếng việt có dấu String[] a = { "à", "á", "ạ", "ả", "ã", "â", "ầ", "ấ", "ậ", "ẩ", "ẫ", "ă", "ắ", "ằ", "ắ", "ặ", "ẳ", "ẵ", "a" }; String[] d = { "đ", "d" }; String[] e = { "è", "é", "ẹ", "ẻ", "ẽ", "ê", "ề", "ế", "ệ", "ể", "ễ", "e" }; String[] i = { "ì", "í", "ị", "ỉ", "ĩ", "i" }; String[] y = { "ỳ", "ý", "ỵ", "ỷ", "ỹ", "y" }; String[] o = { "ò", "ó", "ọ", "ỏ", "õ", "ô", "ồ", "ố", "ộ", "ổ", "ỗ", "ơ", "ờ", "ớ", "ợ", "ở", "ỡ", "o" }; String[] u = { "ù", "ú", "ụ", "ủ", "ũ", "ừ", "ứ", "ự", "ử", "ữ", "u", "ư" }; // thay thế ký tự đặc biệt theo ý muốn name = name.replace(" ", "-"); name = name.replace("#", "sharp"); name = name.replace("$", "dola"); // khai báo mảng ký tự đặt biệt String[] specialchars = { ")", "(", "*", "[", "]", "}", "{", ">", "<", "=", ":", ",", "'", "\"", "/", "\\", "&", "?", ";", ".", "@", "^" }; // chuyển qua chữ thường name = name.toLowerCase(); // thay thế ký tự có dấu thành không dấu for (int k = 0; k < specialchars.length; k++) name = name.replace(specialchars[k], ""); for (int k = 0; k < a.length; k++) name = name.replace(a[k], "a"); for (int k = 0; k < d.length; k++) name = name.replace(d[k], "d"); for (int k = 0; k < e.length; k++) name = name.replace(e[k], "e"); for (int k = 0; k < i.length; k++) name = name.replace(i[k], "i"); for (int k = 0; k < y.length; k++) name = name.replace(y[k], "y"); for (int k = 0; k < o.length; k++) name = name.replace(o[k], "o"); for (int k = 0; k < u.length; k++) name = name.replace(u[k], "u"); return name; } |
Code với C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
public static string ConvertTitleSEO(string name) { //khai báo mảng chứa các ký tự tiếng việt có dấu string[] a = { "à", "á", "ạ", "ả", "ã", "â", "ầ", "ấ", "ậ", "ẩ", "ẫ", "ă", "ắ", "ằ", "ắ", "ặ", "ẳ", "ẵ", "a" }; string[] d = { "đ", "d" }; string[] e = { "è", "é", "ẹ", "ẻ", "ẽ", "ê", "ề", "ế", "ệ", "ể", "ễ", "e" }; string[] i = { "ì", "í", "ị", "ỉ", "ĩ", "i" }; string[] y = { "ỳ", "ý", "ỵ", "ỷ", "ỹ", "y" }; string[] o = { "ò", "ó", "ọ", "ỏ", "õ", "ô", "ồ", "ố", "ộ", "ổ", "ỗ", "ơ", "ờ", "ớ", "ợ", "ở", "ỡ", "o" }; string[] u = { "ù", "ú", "ụ", "ủ", "ũ", "ừ", "ứ", "ự", "ử", "ữ", "u", "ư" }; //thay thế ký tự đặc biệt theo ý muốn name = name.Replace(" ", "-"); name = name.Replace("#", "sharp"); name = name.Replace("$", "dola"); //khai báo mảng ký tự đặt biệt string[] specialchars = { ")", "(", "*", "[", "]", "}", "{", ">", "<", "=", ":", ",", "'", "\"", "/", "\\", "&", "?", ";", ".", "^", "@" }; //xóa các ký tự đặc biệt trong chuỗi for (int k = 0; k < specialchars.Length; k++) name = name.Replace(specialchars[k], ""); //chuyển qua chữ thường name = name.ToLower(); //thay thế ký tự có dấu thành không dấu for (int k = 0; k < a.Length; k++) name = name.Replace(a[k], "a"); for (int k = 0; k < d.Length; k++) name = name.Replace(d[k], "d"); for (int k = 0; k < e.Length; k++) name = name.Replace(e[k], "e"); for (int k = 0; k < i.Length; k++) name = name.Replace(i[k], "i"); for (int k = 0; k < y.Length; k++) name = name.Replace(y[k], "y"); for (int k = 0; k < o.Length; k++) name = name.Replace(o[k], "o"); for (int k = 0; k < u.Length; k++) name = name.Replace(u[k], "u"); return name; } |
Link tải source Java
Link tải source C#
thay lời cảm ơn!
Các bài cũ hơn
- Thêm Description Attribute cho từng Enum và chuyển đổi Enum thành một List Item trong .NET (05:33 PM - 08/12/2023)
- Tạo ứng dụng Angular gọi Restful Webservice (JAX-RS, Jersey) (09:44 PM - 06/12/2023)
- Enable CORS trong Restful Webservice(JAX-RS, Jersey) và Tạo ứng dụng Client sử dụng Ajax JQuery (02:57 PM - 05/12/2023)
- Tạo ứng dụng JSP-Servlet gọi Restful Webservice sử dụng thư viện Jersey Client (04:40 PM - 01/12/2023)
- Security trong Restful Webservice sử dụng Jersey 2 để sinh ra JWT (07:24 PM - 29/11/2023)