• 07-09-2015, 23:16:34
    #1
    Platin üye
    Merhaba,

    Kullanmakta olduğum vBulletin forum sisteminde Ajax ve iconv kullanımına bağlı sorun yaşamaktayım.

    Şöyle ki, Ajax kullanılan alanlarda Türkçe karakter kullanılırsa veritabanına Türkçe karakter olmadan kayıt ediliyor.

    Örneğin;

    "Kullanım" yazınca "kullanm" şeklinde kayıt oluyor.

    Konu ile ilgili önerilerinizi alabilirmiyim ?
  • 07-09-2015, 23:18:36
    #2
    Onurss adlı üyeden alıntı: mesajı görüntüle
    Merhaba,



    Kullanmakta olduğum vBulletin forum sisteminde Ajax ve iconv kullanımına bağlı sorun yaşamaktayım.



    Şöyle ki, Ajax kullanılan alanlarda Türkçe karakter kullanılırsa veritabanına Türkçe karakter olmadan kayıt ediliyor.



    Örneğin;



    "Kullanım" yazınca "kullanm" şeklinde kayıt oluyor.



    Konu ile ilgili önerilerinizi alabilirmiyim ?

    1) İşlem yapan php dosyası UTF8 ile mi kayıt edilmiş?
    2) İşlem yapan php header utf8 verilmiş mi?
    3) iconv için karakter seti uyguladınız mı?


    Sent from my iPhone using Tapatalk
  • 07-09-2015, 23:32:27
    #3
    Platin üye
    mtl adlı üyeden alıntı: mesajı görüntüle
    1) İşlem yapan php dosyası UTF8 ile mi kayıt edilmiş?
    2) İşlem yapan php header utf8 verilmiş mi?
    3) iconv için karakter seti uyguladınız mı?


    Sent from my iPhone using Tapatalk
    1) Evet UTF-8 ile kayıt edilmiş.
    2) Sorunuzu tam olarak anlayamadım.
    3) Ben uygulamadım ancak betik içerisinde yazılmış. Aşağıda kodları paylaşıyorum.

    function convert_unicode_char_to_charset($unicode_int, $charset)
    {
    	$is_utf8 = (strtolower($charset) == 'UTF-8');
    
    	if ($is_utf8)
    	{
    		return convert_int_to_utf8($unicode_int);
    	}
    
    	if (function_exists('iconv'))
    	{
    		// convert this character -- if unrepresentable, it should fail
    		$output = @iconv('UTF-8', $charset, convert_int_to_utf8($unicode_int));
    		if ($output !== false AND $output !== '')
    		{
    			return $output;
    		}
    	}
    
    	return "&#$unicode_int;";
    }
  • 07-09-2015, 23:51:46
    #4
    Hocam bu fonksiyona gelen örnek bir kodu da paylaşır mısınız?


    Onurss adlı üyeden alıntı: mesajı görüntüle
    1) Evet UTF-8 ile kayıt edilmiş.
    2) Sorunuzu tam olarak anlayamadım.
    3) Ben uygulamadım ancak betik içerisinde yazılmış. Aşağıda kodları paylaşıyorum.

    function convert_unicode_char_to_charset($unicode_int, $charset)
    {
    	$is_utf8 = (strtolower($charset) == 'UTF-8');
    
    	if ($is_utf8)
    	{
    		return convert_int_to_utf8($unicode_int);
    	}
    
    	if (function_exists('iconv'))
    	{
    		// convert this character -- if unrepresentable, it should fail
    		$output = @iconv('UTF-8', $charset, convert_int_to_utf8($unicode_int));
    		if ($output !== false AND $output !== '')
    		{
    			return $output;
    		}
    	}
    
    	return "&#$unicode_int;";
    }
  • 08-09-2015, 00:04:44
    #5
    Platin üye
    mtl adlı üyeden alıntı: mesajı görüntüle
    Hocam bu fonksiyona gelen örnek bir kodu da paylaşır mısınız?
    Fonksiyona gelen kodu bulamadım maalesef. Sistem alt yapısı vBulletin, ilgili kodun bulunduğu dosyanın kodlarını tamamen paylaşıyorum işimizi görürse.
    http://www.karaman.net/fonksiyon.html
  • 08-09-2015, 00:44:12
    #6
    Problemin tanımı için önce bu fonksiyona gelen bir örneği görmek lazım. Fonksiyonun nasıl çalıştığına dair.. Daha sonra net bir şekilde problem bu fonksiyondan kaynaklanıyor diyelim. Mesela içinde bir fonksiyon daha var integer değerlerle ilgili "convert_int_to_utf8" burada da byte üzerinden işlem yapıyor. Muhtemelen bu sırada bir arıza çıkıyor olabilir. Çok yüksek ihtimal.

    convert_int_to_utf8($unicode_int)

    Hem ana fonksiyonda hem de bu fonksiyona giden değer aynı. Örnek olarak istediğim de buraya gelen değer. Bunu bulursanız çözmeye çalışalım.



    Onurss adlı üyeden alıntı: mesajı görüntüle
    Fonksiyona gelen kodu bulamadım maalesef. Sistem alt yapısı vBulletin, ilgili kodun bulunduğu dosyanın kodlarını tamamen paylaşıyorum işimizi görürse.
    http://www.karaman.net/fonksiyon.html
  • 08-09-2015, 09:40:05
    #7
    Platin üye
    mtl adlı üyeden alıntı: mesajı görüntüle
    Problemin tanımı için önce bu fonksiyona gelen bir örneği görmek lazım. Fonksiyonun nasıl çalıştığına dair.. Daha sonra net bir şekilde problem bu fonksiyondan kaynaklanıyor diyelim. Mesela içinde bir fonksiyon daha var integer değerlerle ilgili "convert_int_to_utf8" burada da byte üzerinden işlem yapıyor. Muhtemelen bu sırada bir arıza çıkıyor olabilir. Çok yüksek ihtimal.

    convert_int_to_utf8($unicode_int)

    Hem ana fonksiyonda hem de bu fonksiyona giden değer aynı. Örnek olarak istediğim de buraya gelen değer. Bunu bulursanız çözmeye çalışalım.
    Gelen değerleri bulabilmem için önerebileceğiniz bir yol varmıdır ?