• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 583
  • Last Modified:

Special Character in CFImage text

Hi all,

I'm trying to render some text (£10.00) to an image using cfimage. However I can't get the £ character to render correctly, I just get £10.00 (see attached image).

I'm using the following code to generate the image. Any help with this would be greatly appreciated.

<cfset voucherValue = "£10.00">

<!--- Create new blank image --->
<cfset newCodeImage = ImageNew("", 450, 140, "rgb", "##FFFFFF") />

<!--- Set new text attributes. --->
<cfset attr = StructNew()>
<cfset attr.font="Arial">
<cfset attr.style="bold">
<cfset attr.size=110>
<cfset ImageSetDrawingColor(newCodeImage,"##000000")>
<cfset ImageSetAntialiasing(newCodeImage)>

<!--- Add value to blank image --->
<cfset ImageDrawText(newCodeImage,"#voucherValue#",0,115,attr)>

<!--- Save temp image --->
<cfimage action="writeToBrowser" source="#newCodeImage#">

Open in new window


 cfimage_specChar
0
richard-mckenna
Asked:
richard-mckenna
  • 6
  • 4
2 Solutions
 
_agx_Commented:
Try using the unicode representation of £
<cfset vourcherValue = "\U00A310.00">
0
 
_agx_Commented:
0
 
richard-mckennaAuthor Commented:
Unfortunatly not that just renders

\U00A310.00
0
Receive 1:1 tech help

Solve your biggest tech problems alongside global tech experts with 1:1 help.

 
_agx_Commented:
What version of CF are you running. It outputs fine for me w/CF9.0.1
0
 
richard-mckennaAuthor Commented:
Ah 9,0,0,251028 let me try updating CF. Good thinking there :)
0
 
_agx_Commented:
Try adding a UTF8 directive explicitly first. Might be the problem.

<cfprocessingdirective pageencoding="utf-8">
0
 
sajaycCommented:
Hi,
Try using the ascii chr code for the pound sign.

<cfset vourcherValue = chr(153) & "10.00">

Hope this helps.

0
 
richard-mckennaAuthor Commented:
Solved thanks guys, youve been a great help.

cfprocessingdirective didn't do anything.

After the 9.0.1 update <cfset voucherValue = "£10.00"> renders correctly.

<cfset vourcherValue = chr(163) & "10.00"> works as well (note the number is 163) and I think I'm gonna go with this as it seems a bit more complete.

Thanks again.
0
 
_agx_Commented:
cfprocessingdirective didn't do anything
Not sure why. A literal copy and pasted worked perfectly for me. But if the ascii code works, then it's definitely an encoding problem.  
0
 
richard-mckennaAuthor Commented:
Yeah, they also must have changed the encoding in the 9.0.1 update. Think I'll have a look at the release notes when i get chance, see if I can find anything.
0
 
_agx_Commented:
Hmm.. I just tested it again and it's not UTF8 that worked. It was windows-1252

<cfprocessingdirective pageEncoding="windows-1252">
<cfset voucherValue = "£10.00">
0

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

  • 6
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now