title: Vb6 Printer Object Print Japanese
body: <p>I want to use printer (windows driver) to print Japanese in a vb 6 project.</p>
  
  <p>My project is in Japanese Windows Environment (the OS is English Originally, set Japan region and related language).</p>
  
  <p>I use <strong>Printer object</strong> to print a simple string type of Japanese such as "レジースター", the code  like</p>
  
  <pre><code>  Dim s As String
    s="レジースター"
    Printer.Print s
    Printer.EndDoc
  </code></pre>
  
  <p>but the output result is a set of messy code like "OEvƒOEƒ|[ƒg"</p>
  
  <p>Does anybody who can succeeded in printing out Japanese with <strong>Vb6 Printer Object</strong> in <strong>Japanese language Windows Envrionment</strong>, please help me.</p>
  
  <p>Finally find the key is simple, it's a little bit tricky but I still don't know why. Just set the font of the Printer Object like "Printer.Font.Charset = 128" (128 for Japanese)</p>
  
  <p>ATTN: Pls pay attention to my case, my OS is English with the language and region setting to Japanese.</p>
  
  <p>What make me confused is that the default ANSI of Windows. As we know, the default value of Printer.Font.Charset is 0, it means ANSI (IF the language environment is Japanese then it will use code page 932, if it is English, it will use Windows-1252).</p>
  
  <p>My OS is Japanese (set to Japanese, not purely, Originally English OS), when I try to Write a file in Japanese it can display Japanese, but when I use the Printer Object to Print, it does have 0(ANSI) value of .Font.Charset, but actually it still use the original OS code page, so it is wired. And when I try to set the system to Chinese and Korean, both of the language is normal, only Japanese have this problem.</p>