- 2008/01/08
- その他
cfmail関数でメール送信する際に波文字(〜)や、全角ハイフン(−)が ? となって表示される現象が発生しました。
調べてみると、Unicodeの文字列をJISに変換する際に間違って変換してしまうという問題がCFというかJavaにあるらしく(ここ)、その為文字化けが発生していました。
対応方法はメールの送信前に以下のコードを使って文字化け対象の文字を変換することです。
<cfset body=replace(body, "#chr(inputbasen("ff5e",16))#", "#chr(inputbasen("301c",16))#", "all")>
<cfset body=replace(body, "#chr(inputbasen("2225",16))#", "#chr(inputbasen("2016",16))#", "all")>
<cfset body=replace(body, "#chr(inputbasen("ff0d",16))#", "#chr(inputbasen("2212",16))#", "all")>
<cfset body=replace(body, "#chr(inputbasen("ffe0",16))#", "#chr(inputbasen("00a2",16))#", "all")>
<cfset body=replace(body, "#chr(inputbasen("ffe1",16))#", "#chr(inputbasen("00a3",16))#", "all")>
<cfset body=replace(body, "#chr(inputbasen("ffe2",16))#", "#chr(inputbasen("00ac",16))#", "all")>
<cfset body=replace(body, "#chr(inputbasen("2225",16))#", "#chr(inputbasen("2016",16))#", "all")>
<cfset body=replace(body, "#chr(inputbasen("ff0d",16))#", "#chr(inputbasen("2212",16))#", "all")>
<cfset body=replace(body, "#chr(inputbasen("ffe0",16))#", "#chr(inputbasen("00a2",16))#", "all")>
<cfset body=replace(body, "#chr(inputbasen("ffe1",16))#", "#chr(inputbasen("00a3",16))#", "all")>
<cfset body=replace(body, "#chr(inputbasen("ffe2",16))#", "#chr(inputbasen("00ac",16))#", "all")>
参考サイト
Macromedia ColdFusion: - insert title here
こっちもどうぞ
- 新しい: setcookieの正しい使い方
- 古い: jQueryを使ってドラッグ&ドロップを実装する
コメント:0
トラックバック:0
- この記事のトラックバック URL
- http://www.sylvan-l.net/b/2008/01/08/coldfusion%e3%81%a7%e3%83%a1%e3%83%bc%e3%83%ab%e3%82%92%e9%80%81%e3%82%8b%e9%9a%9b%e3%81%ab%e5%85%a8%e8%a7%92%e3%83%8f%e3%82%a4%e3%83%95%e3%83%b3%e3%82%84%e6%b3%a2%e6%96%87%e5%ad%97%e3%81%8c%e6%96%87/trackback/
- トラックバックの送信元リスト
- ColdFusionでメールを送る際に全角ハイフンや波文字が文字化けする - sylvan より
