[Linux-programlama] Re: MySQL'de (rasgele zamanlarda) karaktersorunu

---------

[Linux-programlama] Re: MySQL'de (rasgele zamanlarda) karaktersorunu

From: Tuncay BAŞ <tuncay_at_bir.net.tr>
Date: Tue, 20 May 2008 14:33:23 +0300
Message-ID: <005701c8ba6d$50448ad0$39a0aed4@net>

Hımm.

Ozaman tabloyu oluştururken bide aşağıdaki gibi denesek. Bide sayfanızın karakter kodlaması UTF-8 mi iso-8859-9 mu?

CREATE TABLE `test_kategoriler` (
  `kategori_id` int(11) NOT NULL auto_increment,
  `kategori_adi` varchar(100) default NULL,
  `kategori_aciklamasi` text,
  `kategori_siralama` int(11) default '0',
  `kategori_aktif` int(11) default '1',
  `kategori_dili` char(2) default 'tr',
  `kategori_resim_boyutu` int(11) default '1',
  PRIMARY KEY (`kategori_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin5;

  ----- Original Message -----
  From: Nuri Akman
  To: linux-programlama_at_liste.linux.org.tr
  Sent: Tuesday, May 20, 2008 2:13 PM
  Subject: [Linux-programlama] Re: MySQL'de (rasgele zamanlarda) karaktersorunu

  Merhaba,

  mysql_query("SET NAMES 'latin5'"); satırını ekleyince çıktılar doğrudan ??üÜ??i?öÖçÇ?I??üÜ??i?öÖçÇ?I??üÜ??i?öÖçÇ?I olarak göründü.

  MySQL versionum 4.1.20

  Diğer tablolarımda sorun yok. Bir tek bunda oluyor. Tabloyu yeninden create ettim ama sonuç değişmedi.

  Tuncay BAŞ yazmış:
    MySQL sürümünüz nedir bilmiyorum ama karakter kodlaması ile ilgili görülüyor. Mevcut MySQL tablonuzu değiştirmeden

    veritabanına bağlantı yapıldıktan hemen sonra

    mysql_query("SET NAMES 'latin5'");

    deneyin.

    Yok ben veritabanını sıfırdan açayım derseniz, tabloları ve alanları oluştururken Collection olarak latin5_turkish_ci seçerek oluşturmanız daha hayırlı olur.

      ----- Original Message -----
      From: Nuri Akman
      To: linux-programlama_at_liste.linux.org.tr
      Sent: Tuesday, May 20, 2008 2:00 PM
      Subject: [Linux-programlama] MySQL'de (rasgele zamanlarda) karakter sorunu

      Arkadaşlar,

      MySQL veritabanımda test için kullandığım tabloda şu kayıt var:
      ğĞüÜşŞiİöÖçÇıIğĞüÜşŞiİöÖçÇıIğĞüÜşŞiİöÖçÇıI

      Bu kaydı okuyup ekrana yazdırdığımda ekrana bazen doğru çıktıyı veriyor bazen de şu şekilde çıktı veriyor:
      ??üÜ??i?öÖçÇ?I??üÜ??i?öÖçÇ?I??üÜ??i?öÖçÇ?I

      Aşağıda örnek kodum var. Statik text olarak belirttiğim bölüm ekrana doğru yanzıyor. MySQL'den gelen bölüm sayfayı REFRESH ettiğimde ARA SIRA soru işaretleriyle ( ? ) ekrana geliyor.

      MySQL içindeki veri normal görünüyor. Tüm TR karakterler yerli yerinde.

      Sorunu tespitimden ve çözmeye başlamamdan beri 2 gün oldu, fakat hala bir türlü çözemedim. Fikri olan var mı?

      Kullandığım MySQL Tablo Yapısı:
      CREATE TABLE `test_kategoriler` (
        `kategori_id` int(11) NOT NULL auto_increment,
        `kategori_adi` varchar(100) default NULL,
        `kategori_aciklamasi` text,
        `kategori_siralama` int(11) default '0',
        `kategori_aktif` int(11) default '1',
        `kategori_dili` char(2) default 'tr',
        `kategori_resim_boyutu` int(11) default '1',
        PRIMARY KEY (`kategori_id`)
      ) ENGINE=MyISAM;

      Kullandığım PHP kodu:
      <?php
      $hostname_cnnCicekci = "localhost";
      $database_cnnCicekci = "cicekci";
      $username_cnnCicekci = "root";
      $password_cnnCicekci = "";
      $cnnCicekci = mysql_pconnect($hostname_cnnCicekci, $username_cnnCicekci, $password_cnnCicekci) or trigger_error(mysql_error(),E_USER_ERROR);

      mysql_select_db($database_cnnCicekci, $cnnCicekci);
      $query_rsKategoriler = "SELECT * FROM test";
      $rsKategoriler = mysql_query($query_rsKategoriler, $cnnCicekci) or die(mysql_error());
      $row_rsKategoriler = mysql_fetch_assoc($rsKategoriler);
      ?>
      <html>
      <head>
      <title>Test</title>
      </head>
      <body>
          <h1>Statik Text: </h1>
          <p>ğğĞĞüüÜÜşşŞŞiiİİççÇÇııII</p>
          <p>ğğĞĞüüÜÜşşŞŞiiİİççÇÇııII</p>
          <p>ğğĞĞüüÜÜşşŞŞiiİİççÇÇııII</p>

          <h1>MySQL Text: </h1>
            <?php
                do {
                      echo "<p>" . $row_rsKategoriler['kategori_adi']."</p>";
                } while ($row_rsKategoriler = mysql_fetch_assoc($rsKategoriler));
            ?>

      </body>
      </html>

--------------------------------------------------------------------------
      _______________________________________________
      Linux-programlama mailing list
      Linux-programlama_at_liste.linux.org.tr
      http://liste.linux.org.tr/mailman/listinfo/linux-programlama

----------------------------------------------------------------------------
_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama

------------------------------------------------------------------------------

  _______________________________________________
  Linux-programlama mailing list
  Linux-programlama_at_liste.linux.org.tr
  http://liste.linux.org.tr/mailman/listinfo/linux-programlama

_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Tue 20 May 2008 - 14:05:25 EEST

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.