Войти
iPhoneФорумПрограммирование

В xCode 4.2 пропала поддержка русской локали (wchar_t)

#0
8:57, 22 ноя 2011

После перехода на 4.2 у меня перестала работать поддержка русской локали. Я имею ввиду wchar_t и функции для работы с такими строками. Сталкивался ли кто-то уже с таким? Суть проблемы такова:

#include <stdio.h>

void test()
{
    const wchar_t *myStr = L"привет"; // "privet" in Russian, 6 wide characters total
    const char *myStr2 = "привет"; // "privet" in Russian, 6 characters
   
    printf("string length (wcslen) = %d\n",(int)wcslen(myStr));  // it prints 12
    printf("string length (strlen) = %d\n",(int)strlen(myStr2));  // it prints 12
}

Нулёвый workspace с тестом положил тут:  http://drpadawan.narod2.ru/encoding_test.zip

Спасибо за внимание.

#1
9:18, 22 ноя 2011

L"привет" Это скорее всего макрос. Возможно в новой версии xCode появилась возможность менять его определение (ANSI/UNICODE). Это не солюшен, а предположение. Посмотри в настройках или поищи определение.

#2
9:43, 22 ноя 2011

Кстати да, было такое. Не решили

#3
10:27, 22 ноя 2011

Однако надо было поставить для всех файлов с такими строками кодировку. В 4.2 она ставится на правом табе, в секции Text Settings. Поставил Cyrillic (Mac OS) и всё стало вроде ок.

#4
11:53, 22 ноя 2011

Padawan
Спасибо, будем знать :)

#5
12:12, 22 ноя 2011

setlocale(LC_CTYPE,""); не помогает?

#6
13:23, 22 ноя 2011

Конишуа
setlocale(LC_CTYPE,"") не помогает потому что ни xCode, ни iOS не имеют в окружении настроек локали.  Есть вероятность что можно самому как-то указать там русский, но у меня не получилось.

#7
18:48, 22 ноя 2011

Padawan
> Поставил Cyrillic (Mac OS) и всё стало вроде ок.
>
Логично спросить о том, что делать если понадобится использовать и русский и китайский язык в одном исходнике?

#8
19:07, 22 ноя 2011

> Логично спросить о том, что делать если понадобится использовать и русский и китайский язык в одном исходнике?
Делать обвязку через  средства objective-C с выносом строк в файлы?

#9
20:00, 22 ноя 2011

Sergio
Я думаю что надо разделять зависящие от локали ресурсы по файлам.  Как это будет работать не знаю (осталось выяснить),  но думаю должно, раз каждому файлу можно поставить разную локаль.

#10
23:18, 22 ноя 2011

CasDev
> Делать обвязку через  средства objective-C с выносом строк в файлы?
у нас и это иногда слетает... сделали локализации в SQLite-е

#11
2:32, 23 ноя 2011

Sergio
> Логично спросить о том, что делать если понадобится использовать и русский и
> китайский язык в одном исходнике?
Зачем в исходных кодах русский или китайский язык?

iPhoneФорумПрограммирование

Тема в архиве.