Jump to content
Sign in to follow this  
Servant

How to FileWriteLine() Chinese characters?

Recommended Posts

Servant

First, the value of my $LineArray[0] is "歌词制作 生态。破坏"..

And whenever I tried to run this code:

FileWriteLine($PathName, $LineArray[0] & @CRLF)

The line of the created file produced the "???? ?????" null characters..

Now, what can I do to make it write the original (I think) Chinese characters?

Edited by Servant

Share this post


Link to post
Share on other sites
Myicq

Servant

it does work as expected...

$filename = @ScriptDir & "\chinesestring"
$string = "北京市 - 邓小平"    ; Beijing - Deng Xiaoping
$f = FileOpen($filename & "_unicode_.txt", 2+64)    ; unicode
$f2 = FileOpen($filename & "_utf8BOM_.txt", 2+128)    ; utf8 with BOM
$f3 = FileOpen($filename & "_utf8plain_.txt", 2+256)    ; utf8 no BOM
FileWriteLine($f, $string)
FileWriteLine($f2, $string)
FileWriteLine($f3, $string)

FileClose($f)
FileClose($f2)
FileClose($f3)
 

 

Result are 3 files as attached.

chinesestring_unicode_.txt

chinesestring_utf8BOM_.txt

chinesestring_utf8plain_.txt


I am just a hobby programmer, and nothing great to publish right now.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • smud
      By smud
      Currently, I'm working on a program that will display Dialog boxes with either Yes or No.
      For each dialog, I reward the user with X amount of Credits.
      I'm hoping to output the amount of credits to a cell in a column (there will be 20 different columns).
      It will only post to a row that is equal to today's date (first column). If no row exists yet with the current date, it will start a new row.
      Any suggestions?
      Thank you
    • Trisha
      By Trisha
      Hello,
      I Have clicked on save as option to save a file, while doing that I need to rename a file appending with sysdate. I have searched in google find the below one line of code:
      FileMove("C:\somefile.txt", "C:\somefile1.txt"), When I am trying to append with sysdate. It is not happening. Please help me out  with the small issue.
    • nacerbaaziz
      By nacerbaaziz
      Hello
      I have an inquiry from you
      I have a file path  with commands line
      Is there a way to separate the path from the commands line?
      I want the result in an array
      for example
      $path = '"c:\NVDA\NVDA slav Portable 1\NVDA.exe" -r -m -path="d:\NVDA Path\Portable"'
      there are any method to separate this text?
      i want the result to be as that
      $array[1] = "c:\NVDA\NVDA slav Portable 1\NVDA.exe"
      $array[2] = '-r -m -path="d:\NVDA Path\Portable"'
      Thanks in advance
      am Waiting for your answers
    • ur
      By ur
      In the autoit file, if we add multiple libraries (both internal and custom created one)
       
      When we compile the code and run the exe, some time we are getting runtime errors.
      But the line number of error is not showing the exact line number, might be it is including the line number count of libraries also.
      Can you please suggest how to get the exact error line number.
      So, it will be useful for debugging.
    • nacerbaaziz
      By nacerbaaziz
      Hello my friends
      I have an inquiry after your permission
      I found a function to get the special line commands for any operation
      It requires the name of the process to be searched
      I want to use it to know the process
      Is this possible with this function
      Here is the code
       
      Func commandLineGet($proc, $strComputer=".")
      dim $array[1]
      local $ArrayNumber
      local $oWMI = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2")
      local $oProcessColl = $oWMI.ExecQuery("Select * from Win32_Process where Name= " & '"'& $Proc & '"')
      local $Process
      For $Process In $oProcessColl
      $Process = $Process.Commandline
          ReDim $Array[UBound($Array)+1]
      $ArrayNumber = UBound($Array)-1
      $array[$ArrayNumber] = $Process
      Next
      $ArrayNumber = UBound($Array)-1
      $array[0] = $ArrayNumber
      return $array
      EndFunc
×