Pereiti prie turinio

php,Mysql utf8 insert


Rekomenduojami pranešimai

Laba diena,

 

Turiu toki klausima. su php insertinu text ir vietoi lietuvisku raidziu insertina klaustukus.

html faile nustatyta utf8

lenteles laukas:

imone` varchar(100) COLLATE utf8_lithuanian_ci DEFAULT NULL,

mysql lentele:

ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_lithuanian_ci;

gal zinot kas galetu buti?

Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • po 9 mėnesių...

Sveiki dar karta keliu is naujo tema nes susisduriau vel su problema. Nuo mysql perejau prie PDO ir viskas buvo kaip ir gerai bet ziuriu kad man visgi insertina nesuprantamus simbolius vietoi lietuvisku raidziu :)

Insertina toki teksta: Skaistažiedė, UAB "Migdita"

 

 

CONNECT:

 

$dbh = new PDO("mysql:host=".$config['db_host'].";dbname=".$config['db_name'].";charset=utf8", $config['db_user'], $config['db_pass']);

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->query("SET character_set_results = utf8");
$dbh->query("SET character_set_client = utf8");
$dbh->query("SET character_set_connection = utf8");
$dbh->query("SET character_set_database = utf8");
$dbh->query("SET character_set_server = utf8");

 

INSERT:

 

$do = $dbh->prepare("UPDATE vartotojai SET company = :company, name = :name, last_name = :last_name, address = :address, phone = :phone, email = :email, main_id = :main_id  WHERE main_id = :old_main_id");
$result = $do->execute(array(
							':company' => $new_company,
							':name' => $new_name,
							':last_name' => $new_last_name,
							':address' => $new_address,
							':phone' => $new_phone,
							':email' => $new_email,
							':main_id' => $main_id,
							':old_main_id' => $old_main_id));

 

SQL:

 

CREATE DATABASE IF NOT EXISTS `elektra` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

CREATE TABLE `vartotojai` (
 `id` int(3) NOT NULL AUTO_INCREMENT,
 `company` varchar(225) DEFAULT NULL,
 `name` varchar(15) DEFAULT NULL,
 `last_name` varchar(40) DEFAULT NULL,
 `address` varchar(100) NOT NULL,
 `phone` varchar(11) NOT NULL,
 `email` varchar(30) DEFAULT NULL,
 `main_id` varchar(4) NOT NULL,
 `password` varchar(32) NOT NULL,
 `sk` int(1) NOT NULL,
 PRIMARY KEY (`id`),
 UNIQUE KEY `knygutes_id` (`main_id`)
) ENGINE=InnoDB AUTO_INCREMENT=38 DEFAULT CHARSET=utf8;

Nuoroda į pranešimą
Dalintis kituose puslapiuose

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Sitas yra header.php

 

i index.php includintas header.php (i ji ieina meniu ir visa kita)

add_users.php inludintas tai pat i index.php bet po header.php

 

add_users.php input supildomi duomenis ir siunciami i funkcija kuri insertina i duomenu beze.

 

Jauciu painiau negalejau paaiskinti bet gal suprasit :)

 

ar tiesiog kadangi header.php inludintas del to tiesiog negauna tos utf koduotes?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

jei is web puses, tai tesiog pridek <meta charset="utf-8">, o jei is kazkur kitur, tai aprasyk is kur.

 

ir tesiog, ziurint i ateiti patarimas: pamirsk lt kalba programavime. Ta prasme, nenaudok ju butent kode (knygutes_id), rasyk book_id.

 

Pridejau <meta charset="utf-8">, poto dadejau header('Content-Type: text/html; charset=UTF-8'); ir vistiek nulis emociju :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

pabandyk .htaccess faile irasyti

 

AddDefaultCharset UTF-8

 

Vistiek 0 emociju tik tai padariau utf_encode tada i klaustukus pasikeite o dabar vis rodo ąĨęėįšųū9

 

per chrome inspect element pasiziuriu network headers ir ten viskas atvaizduojama gerai bet paciam webe ne

Form Data

company:ąčęėįšųū90

name:dasdas

last_name:wqewqe

.......

Redagavo Gemalas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Vistiek 0 emociju tik tai padariau utf_encode tada i klaustukus pasikeite o dabar vis rodo ąĨęėįšųū9

 

per chrome inspect element pasiziuriu network headers ir ten viskas atvaizduojama gerai bet paciam webe ne

Form Data

company:ąčęėįšųū90

name:dasdas

last_name:wqewqe

.......

 

Tu programuoji ir testuoji viską savo kompe, ar failus kelį kur nors? Gal geriau parodyk visą savo kodą, tuomet greičiau padėsim wink.gif

 

Bloga koduotė gali būti dėl:

  • Kompiuterio nustatymai (Languages and Locales, tiksliai nepamenu, nes jau seniai linux naudoju biggrin.gif)
  • Naršyklė pati tinkmai nenustato koduodės (reikia žiūrėti naršyklės nustatymus ir keisti koduote, išbandyti kitas naršykles)
  • Failai išsaugomi naudojant blogą koduotę kuri nepalaiko lietuviškų simbolių, arba faile naudojama viena koduotė o atvaizduojant naršyklėje kita..
  • Neteisingai nustatytas HTML charset
  • Problemos su MySQL duomenų bazės koduotėmis ir siunčiamais duomenimis. (skiriasi duomenų bazės ir siunčiamų duomenų koduotė)
  • Naudojamos skirtingos koduotės failuose, naršyklėje ir duomenų bazėje (DB, lentelės, laukai turi skirtingas koduotes)

Redagavo mantys89
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sveiki dar karta keliu is naujo tema nes susisduriau vel su problema. Nuo mysql perejau prie PDO ir viskas buvo kaip ir gerai bet ziuriu kad man visgi insertina nesuprantamus simbolius vietoi lietuvisku raidziu :)

Insertina toki teksta: Skaistažiedė, UAB "Migdita"

 

Man irgi taip buvo.

public function __construct(){
       // Set DSN
       $dsn = 'mysql:host=' . $this->host . ';dbname=' . $this->dbname;
       // Set options
       $options = array(
           PDO::ATTR_PERSISTENT    => true,
           PDO::ATTR_ERRMODE       => PDO::ERRMODE_EXCEPTION,
           PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
       );
       // Create a new PDO instanace
       try{
           $this->dbh = new PDO($dsn, $this->user, $this->pass, $options);
       }
       // Catch any errors
       catch(PDOException $e){
           $this->error = $e->getMessage();
       }
   }

Šis variantas - padėjo.

Redagavo BigBug
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Pasirodo naudojau htmlentities tiksliai nezinodamas kam funkcija reikalinga.

 

Prie to paties noreciau paklausti kai insertinu imones pavadinima UAB "kaku kratituvas" insertina i duomenu baze viska gerai bet jei noriu pasiimti is duomenu bazes ir ideti ta imone redagavimui man kas buvo kabutese nebeismeta palieka tik "UAB "

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...