araç köşesi

Metinden Hex'e, Hex'ten Metne

Metni UTF-8 baytlarının onaltılık (hex) yazımına çevirin ya da hex dizisini okunur metne geri çözün

Verileriniz sizde kalır. Dönüşüm tarayıcının içinde yapılır, hiçbir şey sunucuya gitmez.

Nasıl çalışır?

Sol panele metni ya da hex kodunu yapıştırın; araç girdiye bakarak yönü kendisi bulur ve sonucu sağ panelde gösterir. "Şeker" yazarsanız UTF-8'de C5 9E 65 6B 65 72 çıkar: beş harf altı bayt tutar, çünkü Ş iki bayttır. Sonuç satırı bunu "Ş = C5 9E (2 bayt)" diye açıkça yazar. Ters yönde 48 65 6C 6C 6F yapıştırırsanız "Hello" okunur. Hex dizisindeki boşluk, virgül, iki nokta, tire ve 0x ya da \x önekleri kendiliğinden temizlenir; 0x48,0x69 ile 48 69 aynı sonucu verir. Dizide tek sayıda hane varsa ya da G, Z gibi hex olmayan bir harf geçiyorsa araç tahmin yürütmez, sorunun kaçıncı karakterde olduğunu yazar. Bir veritabanı dökümünden, ağ kaydından ya da hata mesajından gelen hex bozuk bir UTF-8 baytı içeriyorsa o bayt � işaretiyle gösterilir ve kaçıncı bayt olduğu sonuç satırına yazılır. "face" ya da "cafe" gibi yalnız A-F harflerinden oluşan kelimeler hex sanılmaz; yine de yön yanlış bulunursa "Çeviri yönü" ayarından elle seçin.

Bu araç hex to text, text to hex, hex to utf8 aramalarıyla da biliniyor.

Hex (onaltılık) nedir?

Hex, sayıları 16 tabanında yazmanın adıdır: 0-9 rakamlarından sonra A-F harfleri 10-15 değerini taşır. Bir bayt 0 ile 255 arasında bir değerdir ve hex'te tam iki haneyle yazılır (0 = 00, 255 = FF); bu yüzden bilgisayarcılar baytları göstermek için ikilik yerine hex kullanır, 8 hane yerine 2 hane okunur. Bu araçta hex, metnin baytlarının yazımıdır: "Hi" iki bayttır ve 48 69 diye yazılır.

UTF-8 nedir?

UTF-8, Unicode'daki her karakteri 1 ile 4 bayt arasında yazan kodlamadır ve web sayfalarının, JSON dosyalarının ve günümüz programlarının çoğunun varsayılanıdır. İngiliz alfabesi ve rakamlar ASCII ile aynı tek baytı kullanır; Türkçe harfler iki, € ve çoğu simge üç, emoji dört bayt tutar. Çok baytlı karakterin ilk baytı kaç bayt geleceğini söyler (C5 = iki bayt), sonrakiler 80-BF arasındadır. Bu kurala uymayan dizi geçersiz UTF-8'dir; araç böyle baytı � ile gösterir.

Hex ile ASCII kodu arasındaki fark nedir?

ASCII kodu bir karakterin sıra numarasıdır ve genellikle ondalık yazılır: H = 72. Hex ise baytların 16 tabanındaki yazımıdır: H'nin baytı 48'dir, yani 72'nin hex yazımı. İngiliz alfabesinde ikisi aynı sayıyı farklı tabanda söyler. Fark Türkçe harflerde ortaya çıkar: ğ'nin kod numarası 287'dir (hex 11F), ama UTF-8 dosyada iki bayt olarak C4 9F yazılır. Kod numarası isteniyorsa ASCII kod çevirici, dosyada veya ağda gerçekte duran baytlar isteniyorsa bu araç doğru olanıdır.

Aynı harf, farklı bayt: kodlama seçimi neden sonucu değiştirir

Hex, baytların yazımıdır; harfin kendisinin değil. Bir harfin hangi baytlara dönüşeceğini kodlama belirler. UTF-8'de İngiliz alfabesi harfleri tek bayttır (A = 41), Türkçe ş, ğ, ı, İ iki bayttır (ş = C5 9F, ğ = C4 9F), € işareti üç bayttır (E2 82 AC). ISO-8859-1 (Latin-1) her harfi tek baytta tutar ama yalnız 256 karakter bilir; ç, ö, ü vardır, ş ve ğ yoktur. Bu yüzden ş içeren metni Latin-1 ile çevirmek istediğinizde araç hata verir.

UTF-16 her karakteri en az iki bayt yazar: A = 00 41, ş = 01 5F. Windows içi metin ve Java dizeleri bu kodlamayı kullanır; baytlar büyük uçtan (BE) yazılır. Ters yönde FF FE ya da FE FF ile başlayan dizi bayt sırası işareti (BOM) sayılır, atlanır ve sıra ona göre okunur. Aynı hex dizisi yanlış kodlamayla çözülürse ş yerine "ÅŸ" gibi bozuk harfler çıkar; bozukluk görürseniz önce kodlamayı değiştirin.

  • A → 41 (her kodlamada tek bayt, UTF-16'da 00 41)
  • ş → C5 9F (UTF-8) · Latin-1'de yazılamaz · 01 5F (UTF-16)
  • € → E2 82 AC (UTF-8, üç bayt)
  • C5 tek başına → geçersiz UTF-8, � ile gösterilir

Hangi biçimi ne zaman seçmeli

Boşluklu biçim (48 65 6C) okumak ve bayt saymak için en rahatıdır; hata ayıklarken ve bir baytı gözle bulmak gerektiğinde bunu seçin. Bitişik biçim (48656C) URL'lerde, özet (hash) değerlerinde ve veritabanı alanlarında yaygındır; sayısı çift olmalıdır. 0x önekli biçim (0x48 0x65) C, Python ya da JavaScript kodunda bayt dizisi yazarken işe yarar.

Ters yönde biçimi seçmenize gerek yoktur: araç öneki ve ayırıcıları temizleyip yalnız haneleri okur. Büyük ya da küçük harf fark etmez; 4a ile 4A aynıdır. Çıktı her zaman büyük harfle yazılır, çünkü çoğu belge ve araç bu yazımı kullanır.

Sık sorulanlar

Hex kodu metne nasıl çevrilir?

Hex dizisini sol panele yapıştırın; araç bunun hex olduğunu kendisi anlar ve okunur metni sağ panelde gösterir. Boşluk, virgül ve 0x önekleri sorun değildir. Çıkan metinde "Ã" ya da "Å" gibi bozuk harfler görüyorsanız kodlamayı UTF-8 ile ISO-8859-1 arasında değiştirip yeniden bakın.

Türkçe harfler hex'te neden iki bayt tutuyor?

UTF-8, İngiliz alfabesindeki 128 karakteri tek baytta tutar; ş, ğ, ı, İ gibi harfler bu kümenin dışında kaldığı için iki bayta yazılır (ş = C5 9F). Bu bir hata değildir, kodlamanın kuralıdır. Sonuç satırı ilk çok baytlı harfi ve baytlarını ayrıca gösterir.

"Tek sayıda hane" hatası ne demek?

Her bayt tam iki hex hanesiyle yazılır. Dizideki hane sayısı tek ise bir hane kopyalarken kaybolmuş ya da fazladan eklenmiştir; araç hangi baytın yarım kaldığını tahmin edemeyeceği için çeviriyi yapmaz. Kaynağa bakıp eksik haneyi tamamlayın; 0x öneklerinin sıfırı sayılmaz.

Yazdığım metin bir sunucuya gönderiliyor mu?

Hayır. Çeviri tamamen tarayıcınızda yapılır; yapıştırdığınız metin, şifre ya da veritabanı dökümü bu sayfadan çıkmaz ve hiçbir yere kaydedilmez.