Jump to content

UTF-8 File to UTF-16 File Conversion


Recommended Posts

I am trying to create an XML file that can be imported by Windows Task Scheduler. The problem I am running into is that the _XMLDomWrapper only has the option to create ANSI or UTF-8 encoded XML files. Apparently Windows 7 needs the XML file to be UTF-16.

So, is there a way to convert UTF-8 encoded files to UTF-16?

I tried this hoping for an easy fix. Using FileOpen to open the file in UTF-16 format and then changing some lines and closing but no dice.

FileOpen($schedulefile, 32)
_FileWriteToLine($schedulefile, 1, "<?xml version=" & chr(34) & "1.0" & chr(34) & " encoding=" & chr(34) & "UTF-16" & chr(34) & "?>", 1)
_FileWriteToLine($schedulefile, 2, "<Task version=" & chr(34) & "1.3" & chr(34) & " xmlns=" & chr(34) & "http://schemas.microsoft.com/windows/2004/02/mit/task" & chr(34) & ">", 1)
FileClose($schedulefile)
Link to comment
Share on other sites

$csv = FileOpenDialog("Please choose an XML file to fix",@MyDocumentsDir, "(*.XML)", 1+2)

$file_save = $csv&"new.xml"

$file = FileOpen($file_save, 32+2)

If $file = -1 Then

MsgBox(0, "Error", "Unable to open file.")

Exit

EndIf

FileWrite($file, FileRead($csv))

FileClose($file)

Link to comment
Share on other sites

Pretty easy to write, I recommend reading the Help file on the following functions in this snippet of code.

_ConvertFileToUTF16("Example.xml")

Func _ConvertFileToUTF16($sFilePath)
    Local $iEncoding = FileGetEncoding($sFilePath)
    Local $hFileOpen = FileOpen($sFilePath, $iEncoding)
    If $hFileOpen = -1 Then
        Return SetError(1, 0, 0)
    EndIf
    Local $sData = FileRead($hFileOpen)
    FileClose($hFileOpen)

    $hFileOpen = FileOpen($sFilePath, 2 + 32)
    If $hFileOpen = -1 Then
        Return SetError(2, 0, 0)
    EndIf
    FileWrite($hFileOpen, $sData)
    Return FileClose($hFileOpen)
EndFunc   ;==>_ConvertFileToUTF16

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...