crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> QDir::setCurrent(bufPath)
epishev
  опции профиля:
сообщение 8.6.2011, 9:56
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 89
Регистрация: 23.3.2011
Пользователь №: 2533

Спасибо сказали: 0 раз(а)




Репутация:   0  


Всем привет!

Есть вопрос...

мне нужно сменить рабочий каталог на bufPath, причем в bufPath есть русские символы

пишу:

QDir::setCurrent(bufPath);


если в bufPath содержет только английский буквы, то все работает, если русские - не работает.

Как с этим справиться?

очень важно, нужна точная информация!

Заранее спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 8.6.2011, 10:33
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

Спасибо сказали: 23 раз(а)




Репутация:   0  


что такое bufPath и как оно инициализируется?
на какой ОСи и в чем ты пишешь исходный код? какая кодировка исходных файлов?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 8.6.2011, 10:52
Сообщение #3


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


bufPath.toAscii()
//или
bufPath.toUtf8()
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
epishev
  опции профиля:
сообщение 8.6.2011, 11:26
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 89
Регистрация: 23.3.2011
Пользователь №: 2533

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(DIMEDROLL @ 8.6.2011, 11:33) *
что такое bufPath и как оно инициализируется?
на какой ОСи и в чем ты пишешь исходный код? какая кодировка исходных файлов?


QString bufPath;

ОС - Window 7
Исходный код в пишу в Qt Creator (Qt 4.7)

Кодировка файлов? если имеется ввиду кодировка .cpp и .h, то - ANSI


Цитата(RazrFalcon @ 8.6.2011, 11:52) *
bufPath.toAscii()
//или
bufPath.toUtf8()


первое заменяет русские символы вопросами (?)

второе - непонятными символами
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
wiz29
  опции профиля:
сообщение 8.6.2011, 11:36
Сообщение #5


Старейший участник
****

Группа: Участник
Сообщений: 600
Регистрация: 7.7.2010
Из: Санкт-Петербург
Пользователь №: 1866

Спасибо сказали: 94 раз(а)




Репутация:   12  


попробуй QString::fromLocal8Bit для преобразования массива символов

покажи пожалуйста код, где ты задаешь переменную bufPath.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
epishev
  опции профиля:
сообщение 8.6.2011, 11:48
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 89
Регистрация: 23.3.2011
Пользователь №: 2533

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(wiz29 @ 8.6.2011, 12:36) *
попробуй QString::fromLocal8Bit для преобразования массива символов

покажи пожалуйста код, где ты задаешь переменную bufPath.


как-то так

QString bufPath;
QDir dir;
bufPath = dir.currentPath();

QDir::setCurrent(bufPath+"/инт");


изначально рабочий каталог имеет русские символы
и bufPath получает "c:/Qt/???


Сообщение отредактировал epishev - 8.6.2011, 11:52
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
wiz29
  опции профиля:
сообщение 8.6.2011, 12:28
Сообщение #7


Старейший участник
****

Группа: Участник
Сообщений: 600
Регистрация: 7.7.2010
Из: Санкт-Петербург
Пользователь №: 1866

Спасибо сказали: 94 раз(а)




Репутация:   12  


Цитата(epishev @ 8.6.2011, 12:48) *
QString bufPath;
QDir dir;
bufPath = dir.currentPath();

QDir::setCurrent(bufPath+"/инт");

замени на
QString bufPath;
QDir dir;
bufPath = dir.currentPath();

QDir::setCurrent(bufPath+QString::fromLocal8bit("/инт"));

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
epishev
  опции профиля:
сообщение 8.6.2011, 12:45
Сообщение #8


Студент
*

Группа: Участник
Сообщений: 89
Регистрация: 23.3.2011
Пользователь №: 2533

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(wiz29 @ 8.6.2011, 13:28) *
Цитата(epishev @ 8.6.2011, 12:48) *
QString bufPath;
QDir dir;
bufPath = dir.currentPath();

QDir::setCurrent(bufPath+"/инт");

замени на
QString bufPath;
QDir dir;
bufPath = dir.currentPath();

QDir::setCurrent(bufPath+QString::fromLocal8bit("/инт"));


Спасибо! который раз уже выручаешь =)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 8.6.2011, 13:53
Сообщение #9


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(wiz29 @ 8.6.2011, 15:28) *
QString::fromLocal8bit("/инт"));
у меня виндовоз (CP-1251), а кодировка исходника - UTF-8, будет ли твой код работать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
epishev
  опции профиля:
сообщение 8.6.2011, 14:45
Сообщение #10


Студент
*

Группа: Участник
Сообщений: 89
Регистрация: 23.3.2011
Пользователь №: 2533

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 8.6.2011, 14:53) *
Цитата(wiz29 @ 8.6.2011, 15:28) *
QString::fromLocal8bit("/инт"));
у меня виндовоз (CP-1251), а кодировка исходника - UTF-8, будет ли твой код работать?


const char* bufPath;
QDir::setCurrent(QString::fromLocal8Bit(bufPath));


я почти на 100% уверен, что будет
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 24.4.2024, 8:18