vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Codepage ändern (VB6) 
Autor: Spitzbube66
Datum: 07.03.11 09:16

Hallo zusammen...

ich habe auf meinem Rechner (Codepage 857) ein Programm mit türkischen Umlauten erstellt und nun festegstellt, dass es auf PC´s mit Codepage 850 Darstellungsprobleme gibt.

Kann ich während der Laufzeit meines Programms die CP auf 857 ändern und ggf. mit dem Beenden wieder zurücksetzen?

Danke im Voraus

Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Codepage ändern (VB6) 
Autor: Preisser
Datum: 07.03.11 14:04

Hallo,

ich glaube du verwechselst da etwas, denn eine Codepage 850 oder 857 gab es nur früher unter DOS, mit Windows haben die nichts zu tun. Unter Windows gibt es allerdings z.B. den ANSI-Zeichensatz (8-Bit-Kodierung, auch Codepage genannt) Windows-1252, welcher auf westeuropäischen Windows-Systemen verwendet wird und auf ISO-8859-1 basiert. Für türkische Systeme wird der ANSI-Zeichensatz Windows-1254 verwendet (basiert auf ISO-8859-9).

VB6 unterstützt zwar für die Steuerelemente kein Unicode, man kann aber über die Font.Charset-Eigenschaft den ANSI-Zeichensatz wechseln, der zur Darstellung verwendet wird, z.b.
Label1.Font.Charset = 162 'für Windows-1254 (türkische Systeme)
Man könnte auch die Forms 2.0-Controls verwenden, diese unterstützen Unicode. Oder besser auch VB.Net, dort wird Unicode voll unterstützt, und man braucht sich nicht mehr um unterschiedliche Charsets/Codepages zu kümmern.

Beitrag wurde zuletzt am 07.03.11 um 14:08:34 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Codepage ändern (VB6) 
Autor: Spitzbube66
Datum: 08.03.11 08:35

Hallo Preisser,

danke für Deine Antwort. Ich habe leider erfolglos Deine Tipps ausprobiert, aber eine andere Lösung gefunden, welche mir primär erstmal weiterhilft:

Windows XP: Systemsteuerung -> Regions- und Sprachversion -> Erweitert -> bei "Wählen Sie eine Sprachversion der Programme aus, die von Unicode nicht unterstützt werden -> Türkisch auswählen

Win7: Systemsteuerung -> Regions- und Sprachversion -> Verwaltung -> Gebietsschema ändern -> Türkisch

Das ist zwar nicht der eleganteste Weg, aber funktioniert erstmal. Ich hatte mir mit folgendem Programm (aus vbarchiv) die aktuelle Codepage anzeigen lassen, welche normalerweise zuerst 850 und nach der Anpassung 857 anzeigt.


Option Explicit
 
Private Declare Function GetLocaleInfo Lib "kernel32" _
  Alias "GetLocaleInfoA" ( _
  ByVal Locale As Long, _
  ByVal LCType As Long, _
  ByVal lpLCData As String, _
  ByVal cchData As Long) As Long
 
Private Const LOCALE_SYSTEM_DEFAULT As Long = &H800
Private Const LOCALE_DEFAULTCODEPAGE = &HB
 
Private Function GetDefaultCodePage() As String
  Dim nResult As Long
  Dim sBuffer As String
 
  sBuffer = Space$(256)
  nResult = GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, _
    LOCALE_DEFAULTCODEPAGE, sBuffer, Len(sBuffer))
 
  If nResult > 0 Then
    sBuffer = Left$(sBuffer, nResult - 1)
    GetDefaultCodePage = sBuffer
  End If
End Function
 
 
 
 
Private Sub Form_Load()
Dim sCodePage As String
sCodePage = GetDefaultCodePage()
MsgBox ("aktuelle Codapage = " & sCodePage), vbOKOnly
Unload Me
End Sub
Gruß Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel