Tag: 编码

在使用PHP进行编码和数据库插入之前,将复杂数据存储到MySQL BLOB中以检索处于相同状态的数据

我正在构build一个将复杂数据插入到MySQL表中的函数,用作创buildCSV文件的队列。 没有进入明确的细节,我想要的只是简单地使用json_encode将数组转换为序列化格式,使用预处理语句将其插入到MySQL表中,然后检索数据json_decode,并将原始数据以完全相同的格式它是在插入之前。 代码如下所示: // Array data previously created foreach ( $array as $key => $element ) { $array[$key] = htmlspecialchars($element,ENT_QUOTES); } $this->db->query("UPDATE `table` SET `blob_field` = '".$this->db->escape($array)."' WHERE `id` = '".(int)$id."'"); 然后我使用以下方法检索数据: $decoded_array = $this->db->query("SELECT `blob_field` FROM `table` WHERE `id` = '".(int)$id."'")->row['blob_field']; $decoded_array = json_decode($decoded_array); $decoded_array = array_map('htmlspecialchars_decode',$decoded_array); // Add to CSV using fputcsv standard […]

PHP以UTF-8为Excel导出CSV

我无法导出具有非拉丁字符的CSV数据。 我使用以下标题和PHP代码将数据导出为CSV文件: header("Content-type: text/csv; charset=utf-8"); header("Content-Disposition: attachment; filename=myFile.csv"); header("Pragma: no-cache"); header("Expires: 0"); echo "First Name,Last Name, Email Address\n"; foreach ($users as $user) { echo "{$user['first_name']},{$user['last_name']},{$user['email']}\n"; } 在Microsoft Excel上,由于我的数据包含非拉丁字符(希伯来语),我看到一个像这样的炒数据: 这个问题在LibreOffice上不存在。 任何想法如何使MS-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添加到电子表格中时犯了一个错误。

VBAselect性地将双字节转换为单字节字符

我已经写了我的第一个VBA子,它的工作方式是它应该的,但我无法弄清楚那个部分是错的。 它应该有select性地将双字节空格,字母,数字和标点符号转换为单字节,当有一串双字节的日文和拉丁文字符和空格时。 在这张图片中,顶行代表input,底行代表空格,字母,数字和标点符号转换为单字节,而日文字符保持不变。 但是,这是我运行子时发生的事情。 很明显,这是工作,但也有一些与我的连接。 下面的代码是基于“捕获和转换”与有问题的全angular字符对应的UTF-16代码的范围。 它只在本地机器上运行(即当语言/地区设置为日本时),但我不认为我的代码问题与本地化function有关。 任何帮助我做错了将大大,非常感谢! Public Sub Converter() Dim objRange As Range For Each objRange In ActiveSheet.UsedRange Call Alphanumeric(objRange) Next End Sub Private Sub Alphanumeric(ByRef objRange As Range) Dim strIn As String Dim strOut As String Dim strAlphanumeric As String Dim i As Integer If objRange.HasFormula Or _ VarType(objRange.Value) <> vbString Then […]

中文字符从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); 我错过了什么?

什么编码用于导出到CSV?

我正在开发一个java应用程序,将数据导出到CSV文件,打算由最终用户在Excel中打开。 我们只注意到导出函数使用Java的平台默认编码。 这会导致在构build服务器(它被configuration为具有US-ASCII作为其平台默认编码以准确捕捉此类潜在问题)上丢失元音字符并进行unit testing失败。 问题是:哪个编码最好用? Excel如何确定要使用的编码? 它是否使用了一些特定于平台的特性,可能与Java的平台默认值相匹配? 我目前正在倾向于硬编码Cp1252 – 它应该覆盖目标机器(部署环境实际上是指定的)并且将解决testing问题。 从search结果来看,Excel似乎并没有很好的处理UTF-8,所以没有办法,坚持使用平台的默认编码就需要一些解决方法。

Excel到XML,编码问题

这一切都混淆在我的脑海里,我无法把头围住它。 我有一个Excel文件,我必须parsing,使用Java,并翻译成XML。 使用jExcel库,我可以实现parsing,应用程序正确的工作,并把正确的string放在正确的位置。 所以对于parsing部分,我已经覆盖了。 当我尝试将文件转码为UTF-8时出现问题。 我认为excel文件的编码是ISO-8859-1,但我不确定它是否是。 然后,在将我的string添加到xml文件之前,我使用了这个函数。 private static String isoToUtf(String thingie){ byte[] bytedata = thingie.getBytes() ; // Comes in ISO form, as the character set in the DB is set to ISO Charset iso = Charset.forName("ISO-8859-1"); CharsetDecoder isodecoder = iso.newDecoder(); ByteBuffer bbuf = ByteBuffer.wrap(bytedata); CharBuffer cbuf = isodecoder.decode(bbuf); // Decode from ISO to UTF-16 […]

什么是微软excel导入的csv的bese编码?

Microsoft Excel 2000不会正确导入以UTF-8编码的csv。 如果在CSV中embeddedUnicode字符(例如,英文+中文+日文),应使用哪种编码? 谢谢