Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

CFFile write ' charset UTF-8

New Here ,
Dec 07, 2017 Dec 07, 2017

I'm attempting to write a string to an XML file using CFFile.
The XML file must have apostrophes expressed as "'" once complete.

I'm using <cffile action="write" file="#VDJ8databasepath#databaseNew.xml" output="#XmlString#" addnewline="no" charset="utf-8"> to write the string to a file.

I can change the string to represent apostrophes as " ' " or "&apos;" but when I write it to file, apostrophes are written as either " ' " or "&apos;". As you can see, when the string contains apostrophes represented as "&apos;" CFFile encodes the "&" character as "&" but when the string contains apostrophes represented as " ' " it does not encode them at all and simply leaves them as " ' ".


Any ideas how to get my apostrophes written by CFFile as  "&apos;"?

1.1K
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 07, 2017 Dec 07, 2017

Might using writebinary instead help? I can’t test it at the moment.

/charlie


/Charlie (troubleshooter, carehart. org)
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Dec 07, 2017 Dec 07, 2017

Thanks for responding Charlie. Can't quite see how writing as binary will make my file have the correct format. I did try it as it's new for me, but as expected, I couldn't get anything other than binary in the file. Might be taking you out of context here as I'm a bit rusty with the cffile, but just cant see how to make it work with writebinary.

Thanks anyway.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 07, 2017 Dec 07, 2017

It was a shot in the dark. Sorry.

/charlie


/Charlie (troubleshooter, carehart. org)
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Dec 08, 2017 Dec 08, 2017
LATEST

Hey Charlie,

before I start asking questions on the forum, I have to spend hours trying to find my own solution and only really want to use the forum as a last resort, at which point, shots in the dark are greatly appreciated, so please don't apologise too much and thanks for taking the time.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 08, 2017 Dec 08, 2017

Try this:

<cfset content = "y's x's z & b's a's c">

<cfsavecontent variable="testString"><?xml version="1.0" encoding="UTF-8"?>

    <element>

    <cfoutput>#xmlFormat(content)#</cfoutput>

    </element>

</cfsavecontent>

<cffile action="write" file="#VDJ8databasepath#testFile.xml" output="#testString#">

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Resources