Unicode Normalleştirici
Aynı görünür dizi, bir aksanın tek bir kod noktası olarak mı yoksa bir harf artı bir birleştirici işaret olarak mı bulunduğuna bağlı olarak farklı bayt dizileri şeklinde saklanabilir. Bu normalleştirici, metni dört Unicode normalleştirme biçimi (NFC, NFD, NFKC, NFKD) arasında dönüştürür; böylece dizileriniz veritabanlarında, arama dizinlerinde, yineleme kaldırma betiklerinde ve regex eşleşmelerinde temiz biçimde karşılaştırılır.
Unicode metni nasıl normalleştirilir
-
1
Girdinizi yapıştırın
Diziyi girin: aksanlı harfler, CJK metin, ligatürler, tutarsız hissettiren her şey.
-
2
Bir biçim seçin
NFC (birleşik, olağan web biçimi), NFD (ayrışık), NFKC (uyumluluk birleşik) ya da NFKD (uyumluluk ayrışık) seçin.
-
3
Sayımları karşılaştırın
Araç, öncesi ve sonrası için karakter (kod noktası) sayısını ve bayt uzunluğunu bildirir; böylece biçimin diziyi kısaltıp kısaltmadığını ya da uzatıp uzatmadığını görürsünüz.
-
4
Normalleştirilmiş çıktıyı kopyalayın
Sonucu veritabanınızda, API yükünde, slug üreticide ya da bir test fikstüründe kullanın.
Dört biçim ve her birinin ne zaman kullanılacağı
Unicode normalleştirme, standart ek UAX #15 tarafından tanımlanır. Dört biçim iki eksende farklılaşır: kanonik ile uyumluluk ve birleşik ile ayrışık.
Yan yana başvuru
| Biçim | Birleştirme | Eşleme | Ne zaman kullanılır |
|---|---|---|---|
| NFC | Birleşik | Yalnızca kanonik | Web içeriği, veritabanları, dosya adları için varsayılan |
| NFD | Ayrışık | Yalnızca kanonik | Karakter başına aksan temizleyen metin işleme |
| NFKC | Birleşik | Uyumluluk dahil | Arama, tanımlayıcılar, spam filtreleri, görüntü katlama |
| NFKD | Ayrışık | Uyumluluk dahil | Aksan kaldırmadan önce agresif normalleştirme |
Kanonik biçimler anlamı korur
é yazıp biçimleri değiştirin. NFC 1 karakter ve 2 bayt bildirir (tek kod noktası U+00E9), NFD ise 2 karakter ve 3 bayt bildirir (sade bir e ardından birleştirici keskin aksan, U+0301). İkisi ekranda birbirinin aynı görünür ama farklı bayt dizileridir ve normalleştirmenin düzelttiği şey tam da bu uyuşmazlıktır. Kanonik biçimler yalnızca baytları yeniden düzenler, dolayısıyla her iki biçimde de é her zaman keskin aksanlı e harfi anlamına gelir.
“Uyumluluk” aslında neyi değiştirir
K biçimleri (NFKC, NFKD), ilişkili görünen ama farklı biçimlendirme taşıyan karakterleri de yeniden yazar. Bu, kayıplı bir işlemdir: orijinali geri alamazsınız. Örneğin:
fi(U+FB01, Latin küçük ligatür fi)fiolur (iki harf)①(U+2460, daire içinde rakam bir)1olur㌀(U+3300, CJK kare “apaato”)アパートolur- Tam genişlikli
A(U+FF21)Aolur
Bu, arama ve yineleme kaldırma için güçlüdür ama tipografi için yıkıcıdır; bu yüzden K biçimlerine yalnızca görsel sadakat önemli olmadığında başvurun.
Pratik bir kural
- Kullanıcı içeriğini NFC biçiminde saklayın.
- Tanımlayıcıları NFC biçiminde karşılaştırın; böylece tek bir kod noktası olarak yazılan
caféilee+ U+0301 olarak yazılancaféeşleşir.fiilefiya da tam genişlikliAileAda eşit karşılaştırılsın istediğinizde, UAX #31’deki tanımlayıcı kurallarının yaptığı gibi NFKC biçimine geçin. - NFD biçimine normalleştirip birleştirici işaret bloğu U+0300 - U+036F aralığını kaldırarak aksansız slug’lar üretin.
Sık Sorulan Sorular
Genellikle girdinizin zaten hedef biçimde olduğu anlamına gelir. Kaynakları karıştıran bir metin (bir Mac dosya adı, kopyalanmış bir PDF parçası, eski bir veritabanı satırı) yapıştırın; karakter ve bayt sayılarının değiştiğini görme olasılığınız çok daha yüksek olur.
Görüntülenen URL’ler için NFC. Saf ASCII istediğiniz slug’lar için NFD’ye normalleştirin, U+0300 - U+036F üzerinde bir regex ile birleştirici işaretleri temizleyin, sonra küçük harfe çevirin. Ligatürleri ve daire içindeki rakamları da katlamak isterseniz NFKD bir alternatiftir.
Kanonik biçimler (NFC, NFD) anlamı asla değiştirmez, yalnızca baytları yeniden düzenler. Uyumluluk biçimleri (NFKC, NFKD) ise değiştirir: ligatürler bölünür, tam genişlikli harfler katlanır ve üst simgeler düzleşir. Onları yalnızca istediğiniz buysa kullanın.
Normalleştirme sunucumuzda PHP’nin Normalizer sınıfı aracılığıyla çalışır ve sonuç aynı istekte geri döner; metniniz saklanmaz. Yalnızca hangi biçimin uygulandığını belirten anonim bir olayı kaydederiz, içeriğin kendisini asla değil.
İlgili Araçlar
Emoji Kopyala Yapıştır
Sık kullanılan emojilerden oluşan seçkiyi kategoriye göre gezin ve birini yerel olarak kopyalayın. Bu, tam Unicode kataloğu veya metin düzenleyicisi değildir.
Süslü Metin Oluşturucu
Düz metni kalın, italik, el yazısı, fraktur, çift çizgili ve daire içinde gibi on Unicode stiline dönüştürün; bio, açıklama ve kullanıcı adları için.
Kalp simgelerini kopyala
Özenle seçilmiş kalp simgelerini, renkli emojileri ve süslemeli dizileri kopyalayın. Yapıştırmadan önce tam Unicode kod noktalarını görün.
Liste Karşılaştırma Aracı
İki listeyi yapıştırın; ortak öğeleri, yalnızca A listesinde olanları ve yalnızca B listesinde olanları anında görün. Büyük/küçük harf ve boşluk normalleştirmesiyle birlikte.
Marka Adı Oluşturucu
Bir tohum anahtar kelimeden marka adı fikirleri üretin. Ön eklerle son ekleri birleştirip akılda kalıcı uydurma adlar oluşturur; alan adı ve marka kontrollerini siz yaparsınız.
Shakespeare tarzı İngilizce dönüştürücü
Modern İngilizcenin en fazla 4000 karakterine thou, thee, thy, fiil ve eski sözcüklerden oluşan küçük sabit kurallar uygular.
Araç diğer dillerde mevcuttur
- Unicode-Normalisierer [DE]
- Bộ chuẩn hóa Unicode [VI]
- Normalizador Unicode [ES]
- Normaliseur Unicode [FR]
- Penormal Unicode [ID]
- Normalizator Unicode [PL]
- Normalizador Unicode [PT]
- مُطبِّع Unicode [AR]
- Unicode正規化ツール [JA]
- Unicode-normaliseerder [NL]
- Unicode-normaliserare [SV]
- ตัวปรับข้อความให้เป็นมาตรฐาน Unicode [TH]
- 유니코드 정규화기 [KO]
- Unicode Normalizer [EN]
- Normalizzatore Unicode [IT]
- Нормализатор Unicode [RU]
- Unicode 规范化工具 [ZH]