| |
Visual-Basic EinsteigerCodepage ä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 | |
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. | |
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 | |
| 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 |
|
|
sevOutBar 4.0
Vertikale Menüleisten á la Outlook
Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
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
|
|