Ok. takze na webu je to dobre. V databazi je to nejak, ale zobrazi se to dobre.
Takze data mas dobre, neni treba provadet opravy po jednom znaku. Proste je vytahni najednou.
Zjisti, jake prikazy pouziva web pro databazi (jestli pouziva SET NAMES a jake kodovani nebo zadne, pak zjisti default kodovani sql, ve kterem ti to posila). Zjisti, jak ti to web zobrazuje. A prekoduj to.
Cili, jak jsem psal, priklad.
Db ma default kodovani LATIN1.
Web nema SET NAMES, takze se pripojuje k db s kodovanim LATIN1. (A uklada to do tabulky, ktera ma treba UTF, na tom vubec nesejde, protoze to uklada do tabulky v latin1; informace o kodovani v tabulce je pouze informativni, nemusi odpovidat tomu, jak jsou kodovany data).
Na web to zobrazujes jako utf8, treba, php header(...utf8). A zobrazi se znaky spravne, diakritika.
Cili, ty musis udelat to, ze php scriptem vytahnes data a nasoukas je zpet. A pak opravis ve svem programu SET NAMES na utf8. Mezitim by bylo dobre, aby jsi cely program zablokoval, bud prepnout do nejakeho rezimu udrzby v programu, pokud to umoznuje. A nebo pres htaccess vsechno presmeroval na nejakou html stranku, oznamujici udrzbu. At ti nam nikdo needituje.
V programu pak mas
SET NAMES latin1 nebo nic. Vytahnes data. Nastavis SET NAMES na UTF. Ulozis data. Kompletne cele tabulky i s id-autoincremencem a tak. (mozna je prikaz na kopii cele tabulky, ale nevim, zda se u toho da nastavit kodovani)
(ted by se to melo v phpmyadminu nebo nejakem tom programu na databazi zobrazovat ok)
Doporucuji zalozit si duplicitni tabulky nebo databazi bokem a cely prevod realizovat tam. A pak v programu nastavit, ze ma zobrazovat data z jine database.
Nevim, zda jsem to popsal dobre. Zkus treba poslat vzorek exportu. A pridej informaci o nastaveni db a strukturu tabulky. Priklad:
-- phpMyAdmin SQL Dump
-- version 4.0.10deb1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Feb 18, 2019 at 10:39 AM
-- Server version: 5.6.33-0ubuntu0.14.04.1-log
-- PHP Version: 5.5.9-1ubuntu4.21
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */; -- tento radek je dulezity
--
-- Database: `EvidenceActivity`
--
--
-- Table structure for table `s_link`
--
CREATE TABLE IF NOT EXISTS `s_link` (
`idpril` int(10) unsigned NOT NULL AUTO_INCREMENT,
`iduser` int(10) unsigned NOT NULL DEFAULT '0',
`idsem` int(10) unsigned NOT NULL DEFAULT '0',
`idpred` int(10) unsigned NOT NULL DEFAULT '0',
`idtmp` int(10) unsigned NOT NULL DEFAULT '0',
`nazev` varchar(255) NOT NULL DEFAULT '',
`link` varchar(255) NOT NULL DEFAULT '',
`logdate` date NOT NULL DEFAULT '0000-00-00',
`loguser` int(10) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`idpril`),
KEY `idsem` (`idsem`),
KEY `idpred` (`idpred`),
KEY `idtmp` (`idtmp`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=193 ; -- a tento radek je dulezity (teda, spis informativni, ale kdybych delal pokus na tvych datech, jak si mam nastavit tabulku a ladit do te doby nez mi to phpmyadmin zobrazi ok)
Tam jsem oznacil 2 radky, ktere jsou dulezite.