Convert string to UTF8 string

Posted on 2008-10-29
Last Modified: 2010-02-03
I want a visual basic 6.0 procedure that will convert a string to a string containing UTF8 encoded text.
Question by:JiriNovotny
  • 4
  • 2

Expert Comment

Comment Utility
Try this:

Remember that UTF-8 is treated as a Byte array; this should apply throughout your application and database layers.

Author Comment

Comment Utility
Hi nasserd, thanks for your comment. The solution you provided is for VB.NET, I need VB6 solution.

Expert Comment

Comment Utility
Hi, the solution I directed you to is actually VB6.  There is even a Zip file you can download which has a project in VB6.

UTF-8 conversion in .NET is *very* different!
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

LVL 22

Accepted Solution

danaseaman earned 250 total points
Comment Utility
Vb6 strings are stored as UTF-16
Here is Function to convert Vb6 string to UTF-8 string.:

Option Explicit

Private Const adTypeBinary    As Long = 1

Private Const adTypeText      As Long = 2

Private Const adModeReadWrite As Long = 3

'Purpose: UTF16 to UTF8 using ADO

Public Function ADO_EncodeUTF8(ByVal strUTF16 As String) As String

    Dim objStream As Object

    Dim data() As Byte


    Set objStream = CreateObject("ADODB.Stream")

    objStream.Charset = "utf-8"

    objStream.Mode = adModeReadWrite

    objStream.Type = adTypeText


    objStream.WriteText strUTF16


    objStream.Position = 0

    objStream.Type = adTypeBinary

    objStream.Read 3 ' skip BOM

    data = objStream.Read()


    ADO_EncodeUTF8 = StrConv(data, vbUnicode, 1033)

End Function

Open in new window


Assisted Solution

nasserd earned 250 total points
Comment Utility
Persuant to danaseaman's StrConv() recommendation, here are two relevant posts:

Circa 2000:

Background info via Microsoft Support KBs:
LVL 22

Expert Comment

Comment Utility
Second link deals with obsolete 16-bit Vb4 vs 32-bit Vb5/6 and he is using Vb6 so this is not an issue.  

First link deals with UTF8 StrConv issues when running on a Japanese OS. If you use StrConv without specifying a LocalID on a Japanese system (which is MBCS) your UTF-8 conversion can be incorrrect since StrConv uses the current language. This is why above code uses 1033 to force StrConv to use U.S. English which does not have MBCS issues.    


Expert Comment

Comment Utility
Here's a minor discussion about UTF conversion in VB6:

Heere's a tutorial in using Unicode (UTF) in VB6:

Featured Post

Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

Join & Write a Comment

Does the idea of dealing with bits scare or confuse you? Does it seem like a waste of time in an age where we all have terabytes of storage? If so, you're missing out on one of the core tools in every professional programmer's toolbox. Learn how to …
Entering a date in Microsoft Access can be tricky. A typo can cause month and day to be shuffled, entering the day only causes an error, as does entering, say, day 31 in June. This article shows how an inputmask supported by code can help the user a…
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.

743 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now