CÔNG NGHỆ THÔNG TIN >> BÀI VIẾT CHỌN LỌC

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 - 709

Trong 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!

QUẢNG CÁO - TIẾP THỊ