powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Потеря русских букв)
14 сообщений из 14, страница 1 из 1
Потеря русских букв)
    #37830325
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите как исправить чтобы русские символы не менялись на каракули в vb? Может кто нибудь сталкивался?
Login.Caption = "Ëîãèí çàíÿò!"
...
Рейтинг: 0 / 0
Потеря русских букв)
    #37830328
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Потеря русских букв)
    #37830332
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чесно говоря я все равно не понял. Можно по подробнее. Я ничего никуда не копировал у меня просто во всех формах вместо русских букв вот эти иероглифы.
...
Рейтинг: 0 / 0
Потеря русских букв)
    #37830334
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какой шрифт стоит? скриншот окошка выбора шрифта метки можно?
...
Рейтинг: 0 / 0
Потеря русских букв)
    #37830344
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Windows XP или Windows Server 2003

1. В меню Пуск выберите последовательно команды Настройка и Панель управления, затем нажмите Язык и региональные стандарты.

2. В окне Язык и региональные стандарты, перейдите на вкладку Дополнительно.

3. В области Язык программ, не поддерживающих Юникод, выберете требуемый язык, например Русский.

4. Нажмите <Применить>. Заметим, что может потребоваться компакт-диск установки Windows.

5. В диалоговом окне Изменение языка и стандартов, нажмите <Да> чтобы перезагрузить компьютер.

Windows 7, Windows Vista или Windows Server 2008

1. В меню Пуск выберите Панель управления, затем нажмите Язык и региональные стандарты.

2. В окне Язык и региональные стандарты, перейдите на вкладку Дополнительно.

3. В области Язык программ, не поддерживающих Юникод, нажмите кнопку <Изменить язык системы…>.

4. В диалоговом окне Язык и региональные стандарты, выберете требуемый язык, например Русский.

5. Нажмите <OK>. Заметим, что может потребоваться компакт-диск установки Window.

6. В диалоговом окне Изменение языка системы, нажмите Перезагрузить сейчас чтобы перезагрузить компьютер.
...
Рейтинг: 0 / 0
Потеря русских букв)
    #37830349
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!
...
Рейтинг: 0 / 0
Потеря русских букв)
    #37830509
QValD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77 Windows XP или Windows Server 2003

1. В меню Пуск выберите последовательно команды Настройка и Панель управления, затем нажмите Язык и региональные стандарты.

2. В окне Язык и региональные стандарты, перейдите на вкладку Дополнительно.

3. В области Язык программ, не поддерживающих Юникод, выберете требуемый язык, например Русский.

4. Нажмите <Применить>. Заметим, что может потребоваться компакт-диск установки Windows.

5. В диалоговом окне Изменение языка и стандартов, нажмите <Да> чтобы перезагрузить компьютер.

Windows 7, Windows Vista или Windows Server 2008

1. В меню Пуск выберите Панель управления, затем нажмите Язык и региональные стандарты.

2. В окне Язык и региональные стандарты, перейдите на вкладку Дополнительно.

3. В области Язык программ, не поддерживающих Юникод, нажмите кнопку <Изменить язык системы…>.

4. В диалоговом окне Язык и региональные стандарты, выберете требуемый язык, например Русский.

5. Нажмите <OK>. Заметим, что может потребоваться компакт-диск установки Window.

6. В диалоговом окне Изменение языка системы, нажмите Перезагрузить сейчас чтобы перезагрузить компьютер.

Заставить каждого пользователя твоей проги делать это - проблематично)

Я делал так:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
Private Const KL_NAMELENGTH As Long = 9
Private Const KLF_ACTIVATE  As Long = &H1

Public Const LOCALE_LANG_EN_US As String = "00000409"
Public Const LOCALE_LANG_RU As String = "00000419"

Private Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long
Private Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long

Public Function GetKeyboardLayout() As String

    On Error Resume Next
    
    Dim strLocId As String

    strLocId = String(KL_NAMELENGTH, 0)
    GetKeyboardLayoutName strLocId
    
    GetKeyboardLayout = Left(strLocId, Len(strLocId) - 1)
    
End Function

Public Function SetKeyboardLayout(strLocaleId As String) As Boolean
    
    On Error Resume Next
    
    Dim strLocId As String

    strLocId = String(KL_NAMELENGTH, 0)
    GetKeyboardLayoutName strLocId

    If strLocId = (strLocaleId & Chr(0)) Then
      SetKeyboardLayout = True
    Else
        strLocId = String(KL_NAMELENGTH, 0)
        strLocId = LoadKeyboardLayout((strLocaleId & Chr(0)), KLF_ACTIVATE)
        If IsNull(strLocId) Then
            SetKeyboardLayout = False
        Else
            strLocId = String(KL_NAMELENGTH, 0)
            GetKeyboardLayoutName strLocId
            If strLocId = (strLocaleId & Chr(0)) Then
                SetKeyboardLayout = True
            Else
                SetKeyboardLayout = False
            End If
        End If
    End If
    
End Function
...
Рейтинг: 0 / 0
Потеря русских букв)
    #37830826
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QValD,

QValDЗаставить каждого пользователя твоей проги делать это - проблематично)
Я делал так:

Да? И тем не менее это единственный способ избежать иероглифов в половине "национальных" прог (реестры это модификации этого способа). И если вы обратили внимание, то любая "национальная" версия виндов при установке (если делать установку по дефолту), всегда эту свою "национальную" настройку делает. Я раньше (лет 10 назад) не зная этой фишки винды переустанавливал.

То что вы предлагаете - это лишь частное решение: 1) Для одной проги 2) Для одного русского языка.

Хорошо, у меня в моей проге есть проблема:
1. Принимаем e-mail(ы) по POP3 внешней командной утилитой (getmail.exe). Суть утилиты не важна, на выходе получаем файл письма *.eml. (всегда работает)
2. Отделяет от этого *.eml аттачмент при помощи CDO (всегда сохраняется).
3. Что-то с этим attachment делаем. И если язык компьютера "English", а имя файла на польском (с характерными буквами), то этот пункт сглючит, прога не найдет путь к сохраненному в п.2 файлу.


Все мои рекомендации пока такие:
1) Используйте латиницу.
2) Если такие упертые, то настраивайте систему на свой язык "этих аттачментов" (инструкция выше).

На пункт один мне один поляк раз с юмором ответил, что не так просто заставить 50 человек в польском офисе слать только английские имена файлов.

А если отдел поляков, отдел китайцев а сервер японский? А я заранее незнаю кто и где будет ставить прогу.

Код: vbnet
1.
2.
Public Const LOCALE_LANG_EN_US As String = "00000409"
Public Const LOCALE_LANG_RU As String = "00000419"


Не прокатит.

Мое решение тоже хоть и верное, но не больно то мне нравится. Думаю даже могу терять клиентов (help не читают, в техподдержку писать ленятся, функция не основная, но ...)

Что делать будем? Предложите универсальное решение для моего примера.
...
Рейтинг: 0 / 0
Потеря русских букв)
    #37832090
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что, ни у кого нет идей?
Еще раз.
Письмо с вложением, имя вложения на "заранее неизвестном неродном для системы языке",
CDO его честно сохранило на диск с родным именем.
Система не может прочитать путь к файлу, хотя он "типа известен" (знаем папку куда клали и "типа знаем" из свойств CDO крякозяберное имя файла).
...
Рейтинг: 0 / 0
Потеря русских букв)
    #37832386
QValD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77,

после вчерашнего матча плохо думается, но если винда хранит и открывает файл, то скорее всего к нему можно обратиться с помощью API.

ps А раздать всем юзерам по диску с виндой и права админа - безусловно 100% вариант))
...
Рейтинг: 0 / 0
Потеря русских букв)
    #37833147
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий77Что, ни у кого нет идей?
Еще раз.
Письмо с вложением, имя вложения на "заранее неизвестном неродном для системы языке",
CDO его честно сохранило на диск с родным именем.
Система не может прочитать путь к файлу, хотя он "типа известен" (знаем папку куда клали и "типа знаем" из свойств CDO крякозяберное имя файла).Идея есть - сохранять аттачменты в фалы с именами
Код: vbnet
1.
{Message-ID}.attachment{номер аттачмента}.{расширение аттачмента}
...
Рейтинг: 0 / 0
Потеря русских букв)
    #37833256
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища,

идея как-нибудь сохранять файлы с "понятными именами" (переименовывать) у меня была. Но мне как-то надо помнить оригинальное имя файла. Не для доступа к нему через file_path а, т.к. оригинальное имя документа сохраняется в БД и упомянается в обратном e-mail с отчетом о проделанной по этому заданию работе.
Пока честно голова забита другим, потом вернусь к этому вопросу.
...
Рейтинг: 0 / 0
Потеря русских букв)
    #37833333
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий771. Принимаем e-mail(ы) по POP3 внешней командной утилитой (getmail.exe). Суть утилиты не важна, на выходе получаем файл письма *.eml. (всегда работает)Затем из *.eml отделяем аттач, переименовываем его, затем обратно в *.eml заливаем содержимое с новым именем... Что сложного-то?
...
Рейтинг: 0 / 0
Потеря русских букв)
    #37833455
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Дмитрий77
> Но мне как-то надо помнить оригинальное имя файла. ... т.к. оригинальное имя документа сохраняется в БД и упомянается в обратном e-mail

Сохраняйте в БД кроме оригинального имени "преобразованное" имя.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Потеря русских букв)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]