|
0 / 0 / 0
Регистрация: 12.03.2008
Сообщений: 21
|
|
Кодировка строки! (win, koi8, dos)13.03.2008, 08:29. Показов 6484. Ответов 10
Метки нет (Все метки)
Можно ли как-нить узнать в VB, в какой кодировке строка (win, koi8, dos), и затем изменить ее на виндовую (win-1251)
поискал в мсдне, есть токо одна функция strconv(), но она делает не то..
0
|
|
| 13.03.2008, 08:29 | |
|
Ответы с готовыми решениями:
10
Какие кодировки(win, koi8, dos, mac, iso) поддерживает RichEdit Таблица FoxPro,Dos<->Win кодировка и обнлвление Кодировка KOI8-R |
|
eddy
|
||||||
| 13.03.2008, 11:01 | ||||||
GetOEMCP() - то же, только OEM. |
||||||
|
0 / 0 / 0
Регистрация: 12.03.2008
Сообщений: 21
|
|
| 13.03.2008, 12:34 [ТС] | |
|
Спасибо за помощь!
но эти функции возвращают текущую кодировку системы, т.е. у мня кодировка виндовая, то и вернет getacp --> 1251 а как определить кодировку строки (переменной), а затем ее заправить под кодировку системы?
0
|
|
|
eddy
|
|
| 13.03.2008, 13:10 | |
|
Для кодировки под систему используются:
CharToOEM() или OEMToChar() (см. API) Как определить кодировку строки - не знаю. Успеха! |
|
|
eddy
|
|
| 13.03.2008, 13:11 | |
|
Для кодировки под систему используются:
CharToOEM() или OEMToChar() (см. API) Как определить кодировку строки - не знаю. Успеха! |
|
|
0 / 0 / 0
Регистрация: 12.03.2008
Сообщений: 21
|
|
| 17.03.2008, 06:26 [ТС] | |
|
видел на днях исходник написанный на сях, где сделана переделка из koi8 в win1251, наоборот и т.п.
делается там это ручками походу, т.к. в сях я не шарю.. [code] #include <stdio.h> #include <conio.h> #include <stdlib.h> void help(void) { puts('Конвертер кириллицы в DOS(CP866),Windows(CP1251) и КОИ-8'); puts('Формат запуска: CONVERT файл-источник файл-приемник РЕЖИМ'); puts('Режим может быть следующим:'); puts('dw - из DOSa в Windows'); puts('dk - из DOSa в КОИ-8'); puts('wd - из Windows в DOS'); puts('wk - из Windows в КОИ-8'); puts('kd - из КОИ-8 в DOS'); puts('kw - из КОИ-8 в Windows'); puts('в этих режим файл-приемник не обязателен'); puts('Также можно изменять код новой строки, свойственный UNIX и DOS(Windows)'); puts('ud - из UNIXa в DOS'); puts('du - из DOSa в UNIX'); puts('А в этих режимах файл-приемник необходим'); getch(); exit(255); } void main(int argc,char *argv[]) { FILE *in,*out; long i,t=0,m=0,j; char dw[]={'└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуф хцчшщъыьэюя###жжжжЦ=жж==Ц=ЦЦЦЦжЦжжж====ж =ж=Ц=ЦЦ==ЦжжЦЦ#####ЁёЄєЇїЎў°∙·√№¤■ и╕к║п┐бв░Х╖?╣дИа'}; char dk[]={'стўчфхЎ·щъыьэюяЁЄєЇїцшу■√¤ ∙°№рё┴┬╫╟─┼╓┌╔╩╦╠═╬╧╨РСТБЗ▓┤зж╡бионмГДЙИ ЖАКп░ле╗╕▒а╛╣║╢╖кйвд╜╝ЕВНМОПЛ╥╙╘╒╞╚├▐█▌▀ ┘╪▄└╤│гЩШУЫЯЧЬХЮЦ┐ЭФЪ'}; char wd[]={'??'? '.┼╪■%?<?????'' ' '--■T?>???? Ўў?¤?|ЁcЄ '┐-RЇ°?Ii?u·ё№є '???їАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабв гдежзийклмнопрстуфхцчшщъыьэюя'}; char wk[]={'??'? '.К╝Ф%?<?????'' ' '--ФT?>????ЪЯЧ?Э?|│cЩ 'Г-RУЬ?Ii?uЮг┐Ш '???ЫстўчфхЎ·щъыьэюяЁЄєЇїцшу■√¤ ∙°№рё┴┬╫╟─┼╓┌╔╩╦╠═╬╧╨╥╙╘╒╞╚├▐█▌▀┘╪▄ └╤'}; char kd[]={'─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓Ї■∙√ўєЄ ї°¤·Ў═║╒ё╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡Ё╢╣╤╥╦╧╨╩╪
0
|
|
|
0 / 0 / 0
Регистрация: 16.02.2008
Сообщений: 17
|
|
| 17.03.2008, 12:11 | |
|
code
Option Explicit Enum Code Win = 1 Dos = 2 Koi = 3 Iso = 5 End Enum Function Recode(Char As String, Src As Code, Dest As Code) As String Const wDos As String = '°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦ ЧрЩЪЫЬЭЮЯтуфхцчшщсыьэюяШъЂЃ‚ѓ„…†‡?‰Љ‹ЊЌЋ Џђ‘’“”•–—?™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬®Їабвгдежзийклмноп' Const wIso As String = '°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦ ЧўЩЪЫЬЭЮЯтуфхцчшщсыьэюяШъ°±Ііґµ¶·ё№є»јЅѕ їАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеж зийклмноп' Const wKoi As String = 'ђ‘’Ѓ‡Іґ§¦µЎЁ®¬ѓ„‰?†ЂЉЇ°«Ґ»ё± ѕ№є¶·Є©ў¤Ѕі…‚ЌЊЋЏ‹™?“›џ—њћЈ–љќ”їј•бвчзде цъйклмнопртуфхжигюыэящшьасБВЧЗДЕЦЪЙКЛМНО ПРТУФХЖИГЮЫЭЯЩШЬАС' Const wWin As String = 'ЂЃ‚ѓ„…†‡?‰Љ‹ЊЌЋЏђ‘’“”•–—?™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИ ЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопр стуфхцчшщъыьэюя' Const NotRecodedChar As String = '?' If Src = Dest Then Recode = Char Exit Function End If Dim t As String, i As Long, tt As String, a As Long, ss As String, ch As String If Src = Win Then t = Char Else Select Case Src Case Koi: ss = wKoi Case Dos: ss = wDos Case Iso: ss = wIso End Select For i = 1 To Len(Char) ch = Mid(Char, i, 1) If Asc(ch) < 128 Then t = t & ch Else a = InStr(1, ss, ch, vbBinaryCompare) If a = 0 Then t = t & NotRecodedChar Else t = t & Mid$(wWin, a, 1) End If End If Next i End If If Dest = Win Then Recode = t Else Select Case Dest Case Koi: ss = wKoi Case Dos: ss = wDos Case Iso: ss = wIso End Select For i = 1 To Len(Char) ch = Mid(t, i, 1) If Asc(ch) < 128 Then tt = tt & ch Else a = InStr(1, wWin, ch, vbBinaryCompare) If a = 0 Then tt = tt & NotRecodedChar Else tt = tt & Mid$(ss, a, 1) End If End If Next i Recode = tt End If End Function code
0
|
|
|
0 / 0 / 0
Регистрация: 12.03.2008
Сообщений: 21
|
|
| 17.03.2008, 13:39 [ТС] | |
|
}{ай!
спасибо ОГРОМНОЕ за исходник... очень благодарен а если я не знаю исходной кодировки (, то мне перебором каким-нибудь подобным можно поковыряться в строке после перекодировки? че бы понять, прально ли я кодировку изменил или нет... ища 'кривые' символы...все это надо мне для следующего: я извлекаю с помощью функций WinInet API(раньше пытался с помощью Inet, но для юзания в длл он слишком кривоват, че-то не так отрабатывал, хотя в exe приложении все нормально работал), весь html по урлу, но так как текст не всегда в той кодировке, кот. надо, а надо виндовую, то приходиться извращаться.. кстати в заголовке http возвращается какая-нить инфа, в какой кодировке текст?
0
|
|
|
0 / 0 / 0
Регистрация: 16.02.2008
Сообщений: 17
|
|
| 17.03.2008, 19:31 | |
|
кодировка иногда указывается в заголовке
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
0
|
|
|
2 / 2 / 1
Регистрация: 30.07.2007
Сообщений: 206
|
|
| 17.03.2008, 22:25 | |
|
попробуй пример: 'Определить кодировку текста (Dos или Win)' на http://sharig.webzone.ru/category/work10_txt.htm#06
0
|
|
|
0 / 0 / 0
Регистрация: 12.03.2008
Сообщений: 21
|
|
| 18.03.2008, 09:12 [ТС] | |
|
вау...заработало..
в http хедере возвращается инфа в какой кодировке страница, от сюда вывод, мы просто ее определяем, либо instr либо через регулярные вырезаем, и затем рекодим если надо... за примеры спасибо..
0
|
|
| 18.03.2008, 09:12 | |
|
Помогаю со студенческими работами здесь
11
Кодировка koi8-r
Idhttp - Кодировка KOI8-R Кодировка koi8-r в питоне Сбилась кодировка файлов при переносе их с Win XP на Win 7 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|