Postgresql veritabanı kullanıyor ve türkçe karakter girişi yaptığınız alanlarda upper lower fonksiyonlarında sıkıntı yaşıyorsanız bunun sebebi veritabanınızı create ederken locale vermediğiniz için olabilir.
örnek postgresql create database cümlemiz:
CREATE DATABASE my_db ENCODING='UTF-8' LC_COLLATE='tr_TR.UTF-8' TEMPLATE=template0;
CREATE OR REPLACE FUNCTION "public".upper_tr("varchar") RETURNS "varchar" AS $BODY$ BEGIN RETURN UPPER(TRANSLATE($1,'ıi','Iİ')); END; $BODY$ LANGUAGE 'plpgsql' VOLATILE; CREATE OR REPLACE FUNCTION "public".lower_tr("varchar") RETURNS "varchar" AS $BODY$ BEGIN RETURN lower(TRANSLATE($1,'Iİ','ıi')); END; $BODY$ LANGUAGE 'plpgsql' VOLATILE;
windows için
CREATE DATABASE tr_demo ENCODING='UTF-8' LC_COLLATE = 'Turkish_Turkey.1254' LC_CTYPE='Turkish_Turkey.1254' TEMPLATE template0;
ayrıca farklı bir çözüm
https://stackoverflow.com/questions/13029824/postgres-upper-function-on-turkish-character-does-not-return-expected-result
sene 2021 olmasına rağmen bill amca bu sorunu neden çözmez, teşekkürler bilgi için.