Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/30: Рейтинг темы: голосов - 30, средняя оценка - 4.73
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
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.03.2008, 08:29
Ответы с готовыми решениями:

Какие кодировки(win, koi8, dos, mac, iso) поддерживает RichEdit
Какие кодировки(win, koi8, dos, mac, iso) поддерживает RichEdit

Таблица FoxPro,Dos<->Win кодировка и обнлвление
Подключил *.dbf таблицу. На страницу выводятся иероглифы. Если принудительно поставить Вид-Кодировка-ДОС(кириллица) то все нормально но вся...

Кодировка KOI8-R
Всем привет. У меня проблема, я прописал в html файле &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=KOI8-R&quot;&gt;. То есть...

10
eddy
13.03.2008, 11:01
Visual Basic
1
2
Public Declare Function GetACP Lib 'kernel32' Alias 'GetACP' () As Long
Public Declare Function GetOEMCP Lib 'kernel32' Alias 'GetOEMCP' () As Long
GetACP() - возвращает кодировку ANSI (полное наименование функции Get ANSI Code Page)

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[]={'─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓Ї■∙√ўєЄ ї°¤·Ў═║╒ё╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡Ё╢╣╤╥╦╧╨╩&#9578
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.03.2008, 09:12
Помогаю со студенческими работами здесь

Кодировка koi8-r
Всем привет! поискал по всему интернету про кодировку koi8-r нашел кое-что про нее, но чем отличается работа в ней от других кодировок? ...

Кодировка KOI8
Поможете, кто-нибудь разбирается в этом? Какое количество памяти занимает строка (без кавычек) «Доброе утро! Сегодня 20 апреля.» в...

Idhttp - Кодировка KOI8-R
Доброе утро. Возникли проблемы по поводу получение кода с сайта в кодировке KOI-8R, через get запрос в Idhttp. Изначально, когда версия...

Кодировка koi8-r в питоне
Написал скрипт, залил на север(ос debian, стандартная кодировка koi8-r). И при попытке запуске сразу вылазит ошибка: python file.py ...

Сбилась кодировка файлов при переносе их с Win XP на Win 7
Перешёл на 7-ку.Перенёс с XP файлы, которые создавались с помощью MathType 6.7. Но вот незадача- кирилица в НИЖНЕМ индексе и НЕКОТОРЫЕ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
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/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru