Проблем с текстовете
7 отговора
740 прегледа
Проблем с текстовете
Имам няколко таблици с информация на български.
Чарсета на всичките е по дефуолт цп1251
Проблема е, че като я импортна на сървъра всички полета които са varchar излизат на питанки ?????, а текстовите полета са си нормални.
Какви може да са причините
Чарсета на всичките е по дефуолт цп1251
Проблема е, че като я импортна на сървъра всички полета които са varchar излизат на питанки ?????, а текстовите полета са си нормални.
Какви може да са причините
Re: Проблем с текстовете
е са кажи и как го импортваш и каква версия ползваш .....
root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Re: Проблем с текстовете
Първо файла го експортвам от MySQL 4.1.7 инсталиран на локалния ми компютър., след което го инпортвам на друг MySQL 4.1.7 инсталиран на друг компютър, както и хоста в Интернет (там също версията е 4.1.7)
Използвам mysqlfront за експортния файл и същата програма за импорта на локалния компютър и phpMyAdmin за хоста.
И на двете места резултата е един и същ - текстовите полета нямат проблеми, varchar полетата излизат на ?????
Използвам mysqlfront за експортния файл и същата програма за импорта на локалния компютър и phpMyAdmin за хоста.
И на двете места резултата е един и същ - текстовите полета нямат проблеми, varchar полетата излизат на ?????
Re: Проблем с текстовете
И аз имам подобен проблем. С MySQL 4.1.12 съм. Направих съвсем проста таблица с колона от тип VARCHAR (като прочетох първия пост пробвах с TEXT но нищо не се промени). Имам една програмка на Visual C++ 6, която отваря таблицата и чете текстовото поле. Обаче каквото и да правя излизат само въпросителни. Какво ли не опитах - копирах charset-ите на няколко места, променях настройки, но нищо не помогна. А с една глупава таблица на Access нямам такъв проблем със същата програмка. Явно проблема е в MySQL, но не мога да разбера какъв е :(
Я вие двамата с Проблема с текстовете
вижте какво пише в тема Mysql PHP BG
root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
РЕШЕБНИЕ НА ПРОБЛЕМА!!!
Аз си реших проблема така - в 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';" (пак без двойните кавички)
А като се свързвах чрез 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';" (пак без двойните кавички)
РЕШЕБНИЕ НА ПРОБЛЕМА!!!
Аз си реших проблема така - в 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';" (пак без двойните кавички)
А като се свързвах чрез 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';" (пак без двойните кавички)