HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 22.07.2017, 22:40
seek1
Новичок
Регистрация: 30.11.2013
Сообщений: 21
С нами: 6551760

Репутация: 51
По умолчанию

I am working on something using sampfuns and i have a function which parameters takes string example:

void CALLBACK settext(std::string params)

{

}

/settext Да

the word "Да" show in very weird characters.. can you help me to display it in correct way
 
Ответить с цитированием

  #2  
Старый 22.07.2017, 22:50
itsLegend
Флудер
Регистрация: 23.03.2013
Сообщений: 2,696
С нами: 6915558

Репутация: 183


По умолчанию

You can check it on simple console application with multibyte encoding?
 
Ответить с цитированием

  #3  
Старый 23.07.2017, 15:40
seek1
Новичок
Регистрация: 30.11.2013
Сообщений: 21
С нами: 6551760

Репутация: 51
По умолчанию

C++:





Код:
size_t
StrToWstr
(
wstring
&
aDst
,
const
string
&
aSrc
)
{
size_t length
;
length
=
mbstowcs
(
NULL
,
aSrc
.
c_str
(
)
,
0
)
;
if
(
length
!=
static_cast

(
-
1
)
)
{
wchar_t
*
buffer
=
new
wchar_t
[
length
+
1
]
;
length
=
mbstowcs
(
buffer
,
aSrc
.
c_str
(
)
,
length
)
;
buffer
[
length
]
=
L
'\0'
;
aDst
.
assign
(
buffer
)
;
delete
[
]
buffer
;
}
return
length
;
}
void
settext
(
std
::
string params
)
{
std
::
locale
::
global
(
std
::
locale
(
"Russian"
)
)
;
wstring ws
;
StrToWstr
(
ws
,
params
)
;
// ws contain correct word "Да"
char
Buff
[
512
]
;
sprintf
(
Buff
,
"%ws"
,
ws
.
c_str
(
)
)
;
// Buff is contain weird characters
}
int
main
(
)
{
settext
(
"Да"
)
;
return
0
;
}


i convert the string to widestring to be set correctly and yeah the ws contain the word without any encoding issue, but i am wondering why when i try to write it to the Buff it shows there strange characters!
 
Ответить с цитированием

  #4  
Старый 23.07.2017, 17:49
Losyash1337
Новичок
Регистрация: 03.01.2017
Сообщений: 16
С нами: 4925302

Репутация: 0
По умолчанию

C++:





Код:
std
::
string str
=
"Дыа"
;
std
::
wstring wstr
(
str
.
begin
(
)
,
str
.
end
(
)
)
;
// cpp style


C++:





Код:
// Windows style
char
*
a
=
"Дыа"
;
wchar_t
*
b
=
new
wchar_t
[
10
]
;
CharToOem
(
a
,
b
)
;
// CHAR* to WCHAR*
OemToChar
(
b
,
a
)
;
// WCHAR* to CHAR*
 
Ответить с цитированием

  #5  
Старый 28.07.2017, 01:12
seek1
Новичок
Регистрация: 30.11.2013
Сообщений: 21
С нами: 6551760

Репутация: 51
По умолчанию

thank you so much! it works
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...