Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Mengalih Keluar Aksara UTF-8 Tidak Sah daripada Go String?

Bagaimanakah Saya Mengalih Keluar Aksara UTF-8 Tidak Sah daripada Go String?

Linda Hamilton
Linda Hamiltonasal
2024-12-09 21:42:11994semak imbas

How Do I Remove Invalid UTF-8 Characters from a Go String?

Menghapuskan Aksara UTF-8 Tidak Sah dalam Rentetan dalam Go

Mengekod/menyahkod data menggunakan UTF-8 memastikan keserasian merentas sistem dan aksara yang berbeza set. Walau bagaimanapun, aksara UTF-8 yang tidak sah boleh timbul disebabkan oleh ralat penghantaran, serangan berniat jahat atau faktor lain. Mengalih keluar aksara ini adalah penting untuk integriti data dan pengekodan JSON yang betul.

Penyelesaian:

Untuk menangani isu ini dalam Go, terdapat beberapa pendekatan yang tersedia:

  1. Go 1.13 :

    • Dalam Go 1.13 dan versi yang lebih baru, fungsi string.ToValidUTF8 menyediakan penyelesaian yang mudah. Ia memerlukan rentetan dan aksara gantian sebagai argumen dan mengembalikan salinan rentetan dengan aksara UTF-8 yang tidak sah digantikan dengan aksara yang ditentukan.
    • Contoh:

      fixedString := strings.ToValidUTF8("a\xc5z", "")
  2. Pergi 1.11 :

    • Dalam Go 1.11 dan versi yang lebih baru, anda boleh menggunakan fungsi strings.Map bersama-sama dengan utf8.RuneError untuk mengalih keluar aksara UTF-8 yang tidak sah. Fungsi strings.Map menggunakan fungsi pemetaan pada setiap aksara dalam rentetan dan utf8.RuneError ialah pemalar yang mewakili rune UTF-8 yang tidak sah.
    • Contoh:

      fixUtf := func(r rune) rune {
          if r == utf8.RuneError {
              return -1
          }
          return r
      }
      
      fixedString := strings.Map(fixUtf, "a\xc5z")

Atas ialah kandungan terperinci Bagaimanakah Saya Mengalih Keluar Aksara UTF-8 Tidak Sah daripada Go String?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn