Проблем с текстовете

7 отговора 740 прегледа
#1

Проблем с текстовете

Имам няколко таблици с информация на български.
Чарсета на всичките е по дефуолт цп1251

Проблема е, че като я импортна на сървъра всички полета които са varchar излизат на питанки ?????, а текстовите полета са си нормални.
Какви може да са причините

Отговор
в отговор на fen #2

Re: Проблем с текстовете

Става дума за MySQL

Отговор
в отговор на fen #3

Re: Проблем с текстовете

е са кажи и как го импортваш и каква версия ползваш .....

root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Отговор
в отговор на fen #4

Re: Проблем с текстовете

Първо файла го експортвам от MySQL 4.1.7 инсталиран на локалния ми компютър., след което го инпортвам на друг MySQL 4.1.7 инсталиран на друг компютър, както и хоста в Интернет (там също версията е 4.1.7)

Използвам mysqlfront за експортния файл и същата програма за импорта на локалния компютър и phpMyAdmin за хоста.

И на двете места резултата е един и същ - текстовите полета нямат проблеми, varchar полетата излизат на ?????

Отговор
в отговор на fen #5

Re: Проблем с текстовете

И аз имам подобен проблем. С MySQL 4.1.12 съм. Направих съвсем проста таблица с колона от тип VARCHAR (като прочетох първия пост пробвах с TEXT но нищо не се промени). Имам една програмка на Visual C++ 6, която отваря таблицата и чете текстовото поле. Обаче каквото и да правя излизат само въпросителни. Какво ли не опитах - копирах charset-ите на няколко места, променях настройки, но нищо не помогна. А с една глупава таблица на Access нямам такъв проблем със същата програмка. Явно проблема е в MySQL, но не мога да разбера какъв е :(

Отговор
в отговор на fen #6

Я вие двамата с Проблема с текстовете

вижте какво пише в тема Mysql PHP BG

root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Отговор
в отговор на ro6avia #7

РЕШЕБНИЕ НА ПРОБЛЕМА!!!

Аз си реших проблема така - в MyODBC за initial statement сложих "SET NAMES 'cp1251';" (без двойните кавички)

А като се свързвах чрез C API :
MYSQL* connection = mysql_init(NULL);
mysql_options(connection, MYSQL_INIT_COMMAND, "SET NAMES 'cp1251'");
MYSQL* con = mysql_real_connect(connection, "localhost", strUsr, strPass,
strDBName, 0, NULL, 0);

След това всичко бачка на 6. Само че колоните трябва да са със сет cp1251. Иначе не става. За други езици ще трябва сами да измислите как се подава този параметър. Може директно със SQL заявка от рода на SET NAMES "'cp1251';" (пак без двойните кавички)

Отговор
в отговор на ro6avia #8

РЕШЕБНИЕ НА ПРОБЛЕМА!!!

Аз си реших проблема така - в MyODBC за initial statement сложих "SET NAMES 'cp1251';" (без двойните кавички)

А като се свързвах чрез C API :
MYSQL* connection = mysql_init(NULL);
mysql_options(connection, MYSQL_INIT_COMMAND, "SET NAMES 'cp1251'");
MYSQL* con = mysql_real_connect(connection, "localhost", strUsr, strPass,
strDBName, 0, NULL, 0);

След това всичко бачка на 6. Само че колоните трябва да са със сет cp1251. Иначе не става. За други езици ще трябва сами да измислите как се подава този параметър. Може директно със SQL заявка от рода на SET NAMES "'cp1251';" (пак без двойните кавички)

Отговор