Tag: utf 8

如何防止Excel保存后更改csv文件的编码?

我试图从.csv文件实现一个简单的数据导入到我的MVC应用程序。 为了消除用户在他的计算机上保存.csv文件模板的需要,并且经历了首先得到它的麻烦,我在我的表单上创build了一个生成模板的button。 我从一个作家类的模型对象生成一个string: this.Writer.GetCswTemplate()从viewModel返回string( 即column1; colum2 \ r \ n ) 按照如何在C#中使用带有BOM的UTF8编码的GetBytes()? 强制excel打开UTF-8编码的.csv文件: var templateResult = Encoding.UTF8.GetBytes(this.Writer.GetCswTemplate()); var preamble = Encoding.UTF8.GetPreamble(); var templateBytes = preamble.Concat(templateResult).ToArray(); 将生成的模板发送给用户我使用MVC File()助手: return this.File(templateBytes, "application/csv", "filename.csv"); 它工作的很好,它生成模板,将其返回给用户,用Excel打开并显示所有特殊字符。 如果我在Notepad ++中打开生成的文件,我可以看到它的编码是UTF-8。 用户填写生成的模板并将其保存在Excel中时,会发生此问题。 出于某种原因,Excel决定将文件编码更改为ANSI。 有什么办法可以阻止我吗? 我错过了什么(添加某种标题或什么)? 有趣的是,如果我生成模板与UTF-8(没有BOM),修改所述文件在Excel中并保存它,Excel不会更改其编码为ANSI。 问题在于Excel无法识别模板内的特殊字符。

有什么办法可以缓解使用PHP的Excel的UTF-8处理?

我已经从几个脚本中通过CSV文件导入和导出信息到数据库中,特别是Excel处理它们的方式,有一些非常奇怪的UTF-8行为。 脚本本身不是特别复杂,我相信我正确设置编码(为了简洁起见,我已经排除了error handling和字符转义代码): import header("Content-Type: text/plain; charset=UTF-8"); require_once("inc.db.php"); // database connection mysql_query("SET NAMES utf8"); $csv = $_FILES['csv']; $handle = fopen($csv['tmp_name'], "r"); while ($data = fgetcsv($handle, 1000, ',', '"')) { $first_name = $data[0]; $family_name = $data[1]; $company = $data[2]; mysql_query("INSERT INTO table SET first_name = '$first_name', etc…); } 出口 header("Content-Type: text/csv; charset=UTF-8"); header("Content-Disposition: attachment; filename=file.csv"); header("Pragma: […]

R更改字符向量的字符编码

我从两个不同的excel电子表格使用openxlsx :: read.xlsx读取两个数据框。 我想获得常用的列名称。 同 intersect(colnames(nutrients), colnames(req.EAR)) 输出是 [1] "carbohydrate_g" "calcium_mg" "iron_mg" "magnesium_mg" "phosphorus_mg" "zinc_mg" "vit_c_mg" [8] "thiamin_mg" "riboflavin_mg" "niacin_mg" "vit_b6_mg" "folate_µg" "vit_b12_µg" "vit_a_rae_µg" [15] "vit_e_mg" 一个常见的元素 – vit_d_μg – 不会出现在交集中。 我怀疑这是因为在这两个电子表格中,包含μ的元素都被编码为UTF-8,其余的都是“未知”。 我想所有这一切的原因是列名中的μ(μ)。 我原本以为这是由于这样一个事实,即其中mu的元素名称被编码为UTF-8,而其他元素是“未知的”。 真正的原因是有两个UTF-8字符看起来像mu。 在这个网站([ http://www.fileformat.info/info/charset/UTF-8/list.htm] GREEK SMALL LETTER MU (U+03BC) looks like μ. MICRO SIGN (U+00B5) looks like µ. 有人(可能是我)在将mu添加到电子表格中时犯了一个错误。

将CSV导入到VB.Net时指定UTF8编码

我从csv文件导入数据到我的vb.net应用程序。 下面是我用来实现这个目前的代码: Dim myImportConnectionString As String = "provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & txtboxSelectFile.Text & "';Extended Properties=""Excel 8.0;IMEX=1""" Dim MyImportConnection As New System.Data.OleDb.OleDbConnection MyImportConnection.ConnectionString = myImportConnectionString MyImportConnection.Open() Dim myImportAdapterString As String = "select * from [" & mySheet & "$]" Dim MyImportCommand As New System.Data.OleDb.OleDbCommand(myImportAdapterString, MyImportConnection) Dim myImportDataAdapter As New System.Data.OleDb.OleDbDataAdapter(MyImportCommand) Dim myImportDataTable As New System.Data.DataTable myImportDataAdapter.Fill(myImportDataTable) dgvFirst.DataSource […]

使用VBA将Excel(XLS)转换为使用UTF-8的CSV

我想在Excel中将excel转换为带有UTF – 8的csv。 但是,转换时,内容正在变成不需要的符号和文字。 请帮我解决这个问题。 Public Sub convert_UnicodeToUTF8() Dim parF1, parF2 As String parF1 = "D:\test.xlsx" parF2 = "D:\test.csv" Const adSaveCreateOverWrite = 2 Const adTypeText = 2 Dim streamSrc, streamDst ' Source / Destination Set streamSrc = CreateObject("ADODB.Stream") Set streamDst = CreateObject("ADODB.Stream") streamDst.Type = adTypeText streamDst.Charset = "utf-8" streamDst.Open With streamSrc .Type = adTypeText .Charset […]

中文字符从javascript传递到Excel时会损坏

function View_ParamReport() { var xmlPathName = inputPath.innerText; //Based on the input selcted it selectes the particular xslt code and generates the xml output var xml = new ActiveXObject("Msxml2.DOMDocument.6.0"); xml.async=false; xml.load(xmlPathName); var xsl = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.6.0"); xsl.setProperty("AllowDocumentFunction", true); xsl.async=false; var xslTemp = new ActiveXObject("Msxml2.XSLTemplate.6.0"); xslTemp.stylesheet = xsl; var xslProc = xslTemp.createProcessor(); xslProc.input = xml; try { […]

Java JExcel编码为Utf-8

我们有一个旧的应用程序在这里写从其他文件读取的xls文件。 我面临的问题是,编码不会被转移到新创build的.xls,它会跳过所有特殊字符(ÅÄÖ,IM斯堪的纳维亚语)。 我试图设置新的工作簿Utf-8没有成功,请参阅下面的代码: File f = new File(pathName + fileName + ".csv"); System.out.println(splitName[1]); if(f.exists()) f.delete(); OutputStream os = (OutputStream) new FileOutputStream(f); OutputStreamWriter osw = new OutputStreamWriter(os, "Utf-8"); BufferedWriter bw = new BufferedWriter(osw); WorkbookSettings ws = new WorkbookSettings(); ws.setLocale(new Locale("en", "EN")); ws.setEncoding("Utf-8"); Workbook w = Workbook.getWorkbook(new File(pathName + fileName + ".xls"), ws); 我错过了什么?

使用ANSI编码在Excel 2010中打开Excel

我有ANSI编码(这是在Excel 97中生成)的Excel文件,但现在我需要与Excel 2010打开此文件,但似乎有开放ANSI编码的问题,因为而不是俄罗斯字符,我看到坏字符:(怎么可以我在Excel 2010中打开此文件?我试图通过记事本++将xls文件从ANSI转换为UTF-8,但它不能转换此文件:(

用特殊字符为excel创build一个CSV文件

我已经创build了一个简单的PHP脚本作为testing。 我想让PHP从一些数据保存csv。 这个脚本的工作原理,但是当我在Excel中打开它的特殊字符是胡言乱语。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Character Test</title> </head> <body> <ul> <?php $spanishDept = array('Swimwear'=>'Trajes de baῆo','Boys Swimwear'=>'Trajes de baῆo','Girls Swimwear'=>'Trajes de baῆo','Kids Shoes'=>'Zapatos de niῆos',"Scarves"=>'Paῆoletas','Children\'s'=>'Niῆos','Coffee Mugs'=>'Tasas para café'); $list = '"Item","Spanish"'."\r"; foreach($spanishDept AS $english=>$spanish) { echo '<li>'.$english.': '.$spanish.'</li>'; $list .= '"'.$english.'","'.$spanish."\"\r"; […]

将汉字导出为ex​​cel文件

在我的数据库中,汉字的格式是大股东 。 原来汉字是大股东 。 并正确显示在网页上。 当我从* .xls文件中的页面下载数据时,它将生成与数据库( 大股东 )相同的string。 我正在寻找解决scheme将这些字符转换为下载的.xls文件中的原始中文字符。 我在页面上做这个通过把header('Content-type: text/html; charset=utf-8'); 在页面顶部。 我也在excel下载代码中添加了这个头文件,但是没有解决。 这里是下载excel文件的php代码。 header('Content-type: text/html; charset=utf-8'); @include_once('Worksheet.php'); @include_once('Workbook.php'); $Module = "searchxlship.php"; @include_once("../db_class.php"); $DB = new DBConnect(); @ini_set('max_execution_time', 1200); //================================================================ //DELETE THE OLD EXISTING FILE @chmod("searchxlship.xls", 0777); @unlink("searchxlship.xls"); $workbook = new Workbook("searchxlship.xls"); $ColumnWidthArr = array( "0" => "0##23##20" ); $worksheet2 =& $workbook->add_worksheetdefault('Ship_order-' . […]