Я вставляю свои данные в базу данных mysql с помощью этого кода:
<cfprocessingdirective pageEncoding="utf-8">
<cfset setEncoding("URL", "utf-8")>
<cfset setEncoding("Form", "utf-8")>
<cfcontent type="text/html; charset=utf-8">
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<cfparam name="postTextBox" default="" type="String">
<cfoutput>
<form action="index.cfm" method="POST" name="form">
<input name="postTextBox" type="text"/>
<input name="" type="submit" value="Submit" />
</form>
</cfoutput>
<cfquery name="myQuery" datasource="hello">
insert into ad (name)
values(N<cfqueryparam value=#postTextBox# cfsqltype="cf_sql_varchar">)
</cfquery>
</body>
</html>
Проблема в том, что когда я вставляю арабские или персидские символы, которые хранятся в базе данных, что-то вроде "?????" но с английскими иероглифами проблем нет. Я использую ColdFusion 10 и mysql.
С Уважением
Name
кодировку столбца. Убедитесь, что он поддерживает, например, арабский и персидский языки, т.е.create table ( name varchar(500) CHARSET UTF8, ....)
. Кроме того, попробуйте использовать<cfqueryparam cfsqltype="cf_sql_nvarchar"
...›` вместоN
и cf_sql_varchar. - person Leigh   schedule 16.09.2014cfparam
. Вместо этого вы должны использоватьstructKeyExists
, чтобы проверить, была ли отправлена форма. Если это так, запустите INSERT. Таким образом, вы не вставляете пустые значения каждый раз при загрузке страницы. т.е.<cfif structKeyExists(FORM, "postTextBox")> do insert</cfif>
- person Leigh   schedule 17.09.2014