//Big5亂碼檢查
//JavaScript部分
function CheckBig5(myInput)
{
var str = document.getElementById(myInput).value;
var strReplace = "";
for( i=0; i < str.length; i++ )
{ strReplace += str.charAt(i).replace("?", "◎"); }
document.getElementById(myInput).value = escape(strReplace);
}
//ASP.NET部分
//+號在UrlDecode後會變成空白,所以要先轉成別的符號
txtTitle.Text = txtTitle.Text.Trim().Replace("+" ,"●");
string myString = Server.UrlDecode(txtTitle.Text.Trim()).Trim();
//這邊的Default會隨環境改變而變,這邊是用Big5
//編碼後如果是不支援的字體會變成問號
//所以在最上面的JavaScript部份才要先將正常的問號變成別的符號
byte[] myBytes = System.Text.Encoding.Default.GetBytes(myString);
myString = System.Text.Encoding.Default.GetString(myBytes);
if ( myString.IndexOf("?") >= 0 )
{
myCheck = false;
}
myString = myString.Replace("●" ,"+");
myString = myString.Replace("?", "亂");
txtTitle.Text = myString.Replace("◎","?");
if (!myCheck)
{
Response.Write("內容有亂碼,已將亂碼改為亂");
}
全檢查版
------------------JavaScript---------------------
// 將畫面上的輸入欄位做跳脫字元的動作
function EscapeInput(EscapeMode)
{
// 將畫面上所有的TextBox的多行模式也就是TextArea都做跳脫的動作
var myTextArea = document.getElementsByTagName('textarea');
for(var i = 0 ; i <myTextArea.length ; i++)
{
var strReplace = '';
var myTextAreaValue = myTextArea[i].value;
for( var j=0; j < myTextAreaValue.length; j++ )
{
strReplace += myTextAreaValue.charAt(j).replace("?", "◎");
}
myTextArea[i].value = escape(strReplace);
}
// 將畫面上所有的TextBox都做跳脫的動作
var myInput = document.getElementsByTagName('input');
for(var i = 0 ; i <myInput.length ; i++)
{
if ( myInput[i].type == 'text' && myInput[i].getAttribute('readonly') != true )
{
var strReplace = '';
var myInputValue = myInput[i].value;
for( var j=0; j < myInputValue.length; j++ )
{
strReplace += myInputValue.charAt(j).replace("?", "◎");
}
myInput[i].value = escape(strReplace);
}
}
}
-----------------ASP.NET---------------------------
// 檢查是否有不支援的亂碼
public static void CheckInvalidCode(ControlCollection myControls)
{
bool HasInvalidCode = false;
foreach (Control myCtr in myControls)
{
if (myCtr.HasControls())
{
CheckInvalidCode(myCtr.Controls);
}
if (myCtr is TextBox)
{
((TextBox)myCtr).Text.Trim().Replace("+" ,"●");
string myString = HttpUtility.UrlDecode(((TextBox)myCtr).Text.Trim()).Trim();
byte[] myBytes = System.Text.Encoding.Default.GetBytes(myString);
myString = System.Text.Encoding.Default.GetString(myBytes);
if ( myString.IndexOf("?") >= 0 )
{
HasInvalidCode = true;
}
myString = myString.Replace("●" ,"+");
myString = myString.Replace("?", "亂");
((TextBox)myCtr).Text = myString.Replace("◎","?");
}
}
if( HasInvalidCode )
{
Response.Write("輸入內容有亂碼,已將亂碼改為亂");
}
}