THE ORB
Studio başlatılıyor

Incorrect string value (emoji / kodlama)

Birinin adında emoji vardı ve veritabanın emoji saklayamıyor.

groupsO oyuncu kaydedilemiyorcodeGeliştirici gerektirir

Önce şunu yap

Veritabanın ve bağlantısı utf8mb4 kullanmalı. Bir kerelik bir değişiklik.

bug_reportBunun yerine tüm konsolunu yapıştır

Ne anlama gelir

Sütunun karakter setinin temsil edemeyeceği bir karakter yazıldı. Mesajdaki \xF0\x9F ile başlayan bayt dizisi bir emojidir: dört bayt, ve MySQL'in eski utf8'i onları saklayamayan üç baytlık bir kodlamadır.

Neden olur

Ne sıklıkla doğru cevap olduğuna göre sıralı.

  1. 1

    Bir oyuncu adında ya da sohbet mesajında emoji

    En yaygın biçim. Discord ve Steam adları onlarla dolu.

  2. 2

    Veritabanı utf8mb4 değil utf8

    MySQL'in utf8'i her zaman kısmi bir UTF-8 olmuştur. Gerçek olanı utf8mb4.

  3. 3

    Bağlantı karakter seti ayarlanmamış

    Tablo utf8mb4 olabilir ve BAĞLANTI yine utf8 olabilir, ki bu da aynı şekilde başarısız olur. İnsanların kaçırdığı budur.

  4. 4

    latin1 bir sütunda aksanlı ya da CJK metin

    Hiç göç ettirilmemiş, daha eski bir şema.

Hangisinin seninki olduğu nasıl anlaşılır

SHOW VARIABLES LIKE 'character_set_%';
SHOW FULL COLUMNS FROM users;

Sütun utf8mb4 diyor ama bağlantı utf8 diyorsa, sorun bağlantı metnidir.

Nereye bakmalı

server.cfg içindeki bağlantı metni, ve tablonun karakter seti.

Nasıl düzeltilir

İkisini de ayarla. Önce bağlantıyı, çünkü unutulan yarı odur:

set mysql_connection_string "mysql://user:pass@host/db?charset=utf8mb4"

Sonra şemayı:

ALTER DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE users CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Hâlâ kendi kodunda mı takıldın?

Bu sayfa, bu hatanın genelde ne anlama geldiğini anlatır. Konsolunu Server Fixer'a yapıştır; içindeki her şeyi sıraya dizer ve önce ne yapman gerektiğini söyler. Kendin uğraşmak istemiyorsan ORBIE script'i onarır ve kaynağı sunucuna atmaya hazır geri verir.

bug_reportServer Fixer'ı aç

Bu tür bir hata için Script Optimizer buna yol açan sorgu kalıplarını yakalar.

Bununla birlikte gelen hatalar